SQL Server 데이터베이스 백업이 성공적인지 확인하는 방법
· Version : SQL Server
SQL Server 뿐만 아니라 모든 데이터베이스를 운영하는데 있어서 가장 중요한 작업은 백업이다. 아무리 유능한 DBA라도 백업 파일이 없으면 데이터베이스가 크래쉬 되었을때, 데이터 손실을 피할 수 없다.
수 많은 DBA들이 백업 실패가 발생하였을때 이메일, 이벤트 로그 등으로 알림을 받도록 시스템을 구성하여 사용하고 있다. 하지만 구성 매개변수가 변경되거나 메일 시스템의 오류, 또는 예상하지 못한 서브 시스템 오류로 인해 수일 또는 수주 동안 실패에 대한 메일을 받지 못하면 어떻게 될까? 또한 백업을 수행하는데 사용되는 응용프로그램 및 프로세스의 실패한작업과 관련된 검사가 있지만 이들이 성공적으로 작동하는지 확인해야한다.
이러한 문제에 대한 접근방법 중 하나는 백업이 성공했을때 이벤트를 받는 방법이 있다. 즉, 실패했을때가 아닌 성공했을때 알림이다. 그러면 알림을 받지 못했을 때에는 문제가 발생한 것으로 간주하고 조사를 하는 것이다.
이번 포스트에서 소개하는 방법은 24시간 동안 전체 백업 프로세스를 모니터링 하여 매일 전날의 백업에 대한 알림이 전송되도록 하는 것이다. 알림을 받지 못하면 문제가 발생한 것으로 인지하고 해결해야 한다. 아래 코드는 전체 백업, 트랜잭션 로그 백업, 차등 백업을 확인하기 위한 코드이다. 결과셋에서 백업 데이터베이스의 목록이 누락되어있으면 백업이 실패한것으로 간주하여 알림을 발송하도록 설정 하면 된다.
전체 데이터베이스 백업 확인
SELECT database_name, backup_start_date, type, * FROM msdb.dbo.backupset WHERE backup_start_date >= DATEADD(hh, -24, GETDATE()) AND backup_start_date < GETDATE() AND Type = 'D' ORDER BY backup_set_id DESC GO |
트랜잭션 로그 백업 확인
SELECT database_name, backup_start_date, type, * FROM msdb.dbo.backupset WHERE backup_start_date >= DATEADD(hh, -24, GETDATE()) AND backup_start_date < GETDATE() AND Type = 'L' ORDER BY backup_set_id DESC GO |
차등 백업 확인
SELECT database_name, backup_start_date, type, * FROM msdb.dbo.backupset WHERE backup_start_date >= DATEADD(hh, -24, GETDATE()) AND backup_start_date < GETDATE() AND Type = 'I' ORDER BY backup_set_id DESC GO |
파일/파일 그룹 백업 확인
SELECT database_name, backup_start_date, type, * FROM msdb.dbo.backupset WHERE backup_start_date >= DATEADD(hh, -24, GETDATE()) AND backup_start_date < GETDATE() AND Type = 'F' ORDER BY backup_set_id DESC GO |
또 한가지 중요한것은 정상적으로 백업이 진행되었더라고 주기적으로 백업 파일을 복원하여 백업 파일에 대한 문제가 없는지 확인을 해야 한다.
2017-05-23 / 강성욱 / http://sqlmvp.kr
SQL Server, MSSQL, SQL Backup, msdb, backupset
'SQL Server > SQL Server Tip' 카테고리의 다른 글
Multisubnet환경의 AG 그룹에서 링크드 서버 사용시 주의점 (0) | 2017.09.13 |
---|---|
SQL Server DBA 체크리스트 (0) | 2017.05.31 |
트리거가 적용된 메모리 최적화 테이블에서 alter table 실패 (0) | 2017.05.31 |
메모리 최적화 테이블 변수 및 예상 행수 (0) | 2017.05.31 |
백업 파일 복원과 3241 오류 (Microsoft® SQL Server® Backup to Microsoft Azure®Tool 사용) (0) | 2017.05.31 |