2014년 4월 28일 월요일

Backup History 조회하기

백업이 잘 수행되었는지 확인하는 것은 DBA의 중요한 업무입니다.
백업이 실패하는 것을 모르고 지나치다가 사고라도 나면 어떻게 될까요? 경위서따위로 순순히 끝나진 않을 듯...
철저한 백업은 사고 예방의 첫걸음입니다.
백업 실패는 로그파일 뷰어를 통해서도 확인할 수 있지만
쿼리를 통해 조회하면 경고시스템을 직접 만드는 등 유연하게 대처할 수 있습니다.

다음 쿼리는 백업실행 History를 조회합니다.
sys.databases와 OUTER JOIN을 하여 백업이 실행되지 않은 Database를 쉽게 파악 할 수 있도록 하였습니다.
DECLARE @Database VARCHAR(1000), @Date1 DATETIME, @Date2 DATETIME

SET NOCOUNT ON

SELECT database_name = A.name
       , B.name
       , B.description
       , B.database_creation_date
       , B.backup_start_date
       , B.backup_finish_date
       , duration = datediff(second, B.backup_start_date, B.backup_finish_date)
       , B.type
       , size = B.backup_size/1024.0/1024.0
       , B.recovery_model
       , B.is_damaged
  FROM sys.databases(NOLOCK) A
       LEFT OUTER JOIN msdb.dbo.backupset(NOLOCK) B ON A.name = B.database_name AND B.backup_start_date BETWEEN @Date1 AND DATEADD(DAY, 1, @Date2)
 WHERE A.name = ISNULL(@Database, A.name)
 ORDER BY A.database_id, B.backup_start_date DESC

댓글 없음:

댓글 쓰기