Backup File 조회하기
MsSQL은 전체 복구 모델일 경우 Full Backup 을 받은 후 하위에 Log Backup을 하며 하나의 세트를 만들어간다.
자세한 설명을 아래의 글로 남겨두도록 하겠다.
[MsSQL] Database 복구 모델 - Simple, Full (단순 모델, 전체 모델)
[MsSQL] Database Backup이란? - Full / Differential / Log Backup
보통 실무에서 예를들자면,
1일 단위로 Full Backup을 받고 4시간 단위 Log Backup을 받는식으로의 백업 정책을 가지고 있는데,
어떠한 Full Backup 파일 하위에 어떤 순서로 어떤 Log Backup 파일을 가지고 있는지 한눈에 알아보는 쿼리를 작성해 보았다.
Query
쿼리 자체는 간단하다.
BACKUPSET이라는 성공적으로 완료된 백업에 대한 정보를 포함하는 시스템 테이블을 조회하여 작성하였다.
select a.database_name,
a.name,
a.first_lsn,
a.last_lsn,
a.checkpoint_lsn,
a.database_backup_lsn,
a.backup_start_date,
a.backup_finish_date,
a.type
from BACKUPSET a with(nolock)
inner join (select database_name,
max(backup_finish_date) as last_backup_finish_date
from BACKUPSET with(nolock)
where type = 'D'
group by database_name) b
on a.database_name = b.database_name
and a.backup_finish_date = b.last_backup_finish_date
where a.type = 'D'
union all
select aa.database_name,
aa.name,
aa.first_lsn,
aa.last_lsn,
aa.checkpoint_lsn,
aa.database_backup_lsn,
aa.backup_start_date,
aa.backup_finish_date,
aa.type
from BACKUPSET aa with(nolock)
inner join (select a.database_name,
a.checkpoint_lsn
from BACKUPSET a with(nolock)
inner join (select database_name,
max(backup_finish_date) as last_backup_finish_date
from BACKUPSET with(nolock)
where type = 'D'
group by database_name) b
on a.database_name = b.database_name
and a.backup_finish_date = b.last_backup_finish_date
where a.type = 'D') bb
on aa.database_backup_lsn = bb.checkpoint_lsn
where type = 'L'
order by database_name,
last_lsn
데이터베이스 별 Full Backup 파일 중 제일 마지막 Full Backup 파일과 해당 백업파일의 checkpoint_lsn을 가져와 Log Backup 파일의 database_backup_lsn과 같은 파일을 찾는 로직이다.
Related Posts
반응형
'DATABASE > MsSQL' 카테고리의 다른 글
[MsSQL] SET STATISTICS 옵션을 활용 - 실제 실행 계획 상세보기 (0) | 2024.11.20 |
---|---|
[MsSQL] 프로시저 내용 찾기 - 특정 테이블이 사용되는 프로시저 찾기 (1) | 2024.11.16 |
[MsSQL] 마지막 페이지 Latch 경합 (Insert 지연 튜닝) - 2. 테스트 및 적용 (0) | 2024.11.13 |
[MsSQL] 현재 세션에 대한 정보들 조회하기 (0) | 2024.11.10 |
[MsSQL] 마지막 페이지 Latch 경합 (Insert 지연 튜닝) - 1. 원인 찾기 (1) | 2024.11.08 |
[MsSQL] 실행 했던 쿼리 실행 계획 찾기 (0) | 2024.11.07 |
[MsSQL] DBCC WRITEPAGE를 활용한 Data Page 오류 만들기 및 테스트 (2) | 2024.10.07 |
[MsSQL] SQL Server - Log Shipping 을 활용한 이중화 (DR 구성) (0) | 2024.07.22 |