SQL Server VSS를 사용하여 볼륨의 파일을 백업할 때 백업 세트 기록 테이블에 백업 작업을 기록합니다.

이 문서에서는 VSS를 사용하여 볼륨에 파일을 백업할 때 발생하는 "의도적으로" 동작에 대해 설명합니다.

원래 제품 버전: SQL Server
원본 KB 번호: 951288

증상

VSS(볼륨 섀도 복사본 서비스) 애플리케이션을 사용하여 SQL Server 데이터베이스 파일이 포함된 볼륨의 파일을 백업하는 경우 SQL Server 기록 테이블에 백업 작업을 backupset 기록합니다. 이 동작은 실제로 SQL Server 데이터베이스 파일을 백업하지 않은 경우에도 발생합니다.

원인

이 동작은 VSS 애플리케이션이 백업 작업 중에 시스템에서 SQLWriter 서비스를 호출하기 때문에 발생합니다. VSS 애플리케이션이 SQL 기록기와 상호 작용하는 방법에 대한 자세한 내용은 SQL Server 백업 애플리케이션 - VSS(볼륨 섀도 복사본 서비스) 및 SQL 기록기를 검토하세요.

데이터 복구를 위해 백업 세트 기록 테이블의 항목을 사용하는 경우 주의 사항

데이터 복구를 위해 기록 테이블의 backupset 항목을 사용하려면 항목이 실제 데이터베이스 백업 작업을 나타내는지 확인해야 합니다.

항목이 네이티브 데이터베이스 백업 작업을 나타내는지 확인합니다(VSS 스냅샷 백업과 반대).

이렇게 하려면 다음 문을 실행합니다.

USE msdb
GO

SELECT server_name, database_name, backup_start_date, is_snapshot, database_backup_lsn
FROM backupset

결과에서 열과 열을 확인 database_backup_lsn 합니다 is_snapshot . 네이티브 데이터베이스 백업 작업을 나타내는 항목에는 다음과 같은 특성이 있습니다.

  • 열의 값은 database_backup_lsn0이 아닙니다.
  • 열의 is_snapshot 값은 0입니다.

백업 집합에 오류가 없는지 확인합니다.

이렇게 하려면 다음 문을 실행합니다.

WITH backupInfo AS( SELECT database_name AS [DatabaseName],
name AS [BackupName], is_damaged AS [BackupStatus],
backup_start_date AS [backupDate],
ROW_NUMBER() OVER(PARTITION BY database_name
ORDER BY backup_start_date DESC) AS BackupIDForDB
FROM msdb..backupset) SELECT DatabaseName
FROM backupinfo WHERE BackupIDForDB = 1 and BackupStatus=1

이 쿼리가 결과를 반환하는 경우 보고된 날짜 이후에 데이터베이스 백업이 좋지 않음을 의미합니다. 가능한 한 빨리 전체 데이터베이스 백업을 수행하고 전체 데이터베이스 백업이 클린 있는지 확인하는 것이 좋습니다.

is_damaged 속성

msdb 데이터베이스의 테이블에는 backupset 각 백업 집합에 대한 행이 포함됩니다. 테이블의 backupset 속성은 is_damaged 백업을 만들 때 데이터베이스 손상이 감지되었는지 여부를 나타냅니다. 따라서 백업이 손상되어 복원할 수 없을 수 있습니다.