SQL Server 유지 관리 정리에서는 오래된 백업을 삭제할 때 정확한 시간을 고려합니까?

SQL Server 유지 관리 정리에서는 오래된 백업을 삭제할 때 정확한 시간을 고려합니까?

다음과 같은 일일 유지 관리 작업이 있다고 가정해 보겠습니다.

  1. 모든 데이터베이스를 백업한 다음
  2. 3일보다 오래된 백업을 제거합니다.

이제 1일차의 첫 번째 백업이 10:00에 시작되어 다음 파일이 생성된다고 가정해 보겠습니다.

db1.bak 2012-01-01 10:04
db2.bak 2012-01-01 10:06

이제 4일차에 유지 관리 작업의 첫 번째 단계(DB 백업)가 10시 5분에 완료된다고 가정해 보겠습니다. SQL Server가 될까요?

  • db1.bak를 삭제하고 db2.bak를 유지합니다(논리적이지만 사용자에게는 놀랄 수 있음).
  • 둘 다 유지하거나
  • 둘 다 제거 하시겠습니까?

답변1

유지 관리 계획은 정리 작업이 시작되는 시간을 사용하여 해당 시간에 SQL을 생성하므로 백업 파일을 제거합니다. 따라서 설명하신 세 가지 옵션에서 첫 번째 경우가 발생합니다.

3일이 지난 파일을 제거하는 예제 계획을 만들고 작업을 실행했습니다. 아래 로그 출력에서 ​​작업이 2013년 5월 7일 12시 25분에 실행되었으며 2013년 5월 4일 12시 25분보다 오래된 파일을 제거했음을 알 수 있습니다. 아래 T-SQL은 날짜가 생성되는 방법에 대한 대략적인 명령을 보여줍니다.

query:
select GETDATE()
select DATEADD(DAY, -3, GETDATE() )

results:
-----------------------
2013-05-07 12:51:52.073

(1 row(s) affected)

-----------------------
2013-05-04 12:51:52.073

(1 row(s) affected)

유지 관리 계획: MaintenancePlan 기간: 00:00:02 상태: 성공했습니다. 세부:

로컬 서버 연결에서 데이터베이스 백업 데이터베이스: DBA 유형: 전체 기존 추가 작업 시작: 2013-05-07T12:25:03. 작업 종료: 2013-05-07T12:25:05. 성공 명령: BACKUP DATABASE [DBA] TO DISK = N''N:\Apps\MSSQL10.INSTANCE\MSSQL\Backup\DBA_backup_2013_05_07_122503_6738713.bak'' WITH NOFORMAT, NOINIT, NAME = N''DBA_backup_2013_05_07_122503_6738713 '', 건너뛰기, 되감기, NOUNLOAD, 통계 = 10

가다

유지 관리 로컬 서버 연결 정리 데이터베이스 백업 파일 정리 기간: 3일 이상 작업 시작: 2013-05-07T12:25:05. 작업 종료: 2013-05-07T12:25:05. 성공 명령:EXECUTE master.dbo.xp_delete_file 0,N''N:\Apps\MSSQL10.INSTANCE\MSSQL\Backup'',N''BAK'',N''2013-05-04T12:25:05''

가다

관련 정보