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_lsn
0이 아닙니다. - 열의
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
백업을 만들 때 데이터베이스 손상이 감지되었는지 여부를 나타냅니다. 따라서 백업이 손상되어 복원할 수 없을 수 있습니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기