DB 백업본을 통한 복원시 필요한 백업세트를 어떤정보로 파악을 하는가 확인을 하기 위해
인터넷을 검색했는데, 다소 정보가 부정확하여 20년 초 진행했던 테스트 이력임
MSDN 내 Backupset 테이블 LSN 컬럼에 대한 설명
first_lsn | 숫자 (25, 0) | 백업 세트에서 첫 번째 또는 가장 오래된 로그 레코드의 로그 시퀀스 번호입니다. NULL일 수 있습니다. |
last_lsn | 숫자 (25, 0) | 백업 세트 다음에 오는 로그 레코드의 로그 시퀀스 번호입니다. NULL일 수 있습니다. |
checkpoint_lsn | 숫자 (25, 0) | 다시 실행(redo)이 시작되어야 하는 로그 레코드의 로그 시퀀스 번호입니다. NULL일 수 있습니다. |
database_backup_lsn | 숫자 (25, 0) | 가장 최근 전체 데이터베이스 백업의 로그 시퀀스 번호입니다. NULL일 수 있습니다. database_backup_lsn 은 백업이 시작 될 때 트리거되는 "검사점의 시작"입니다. 데이터베이스가 유휴 상태이 고 복제가 구성 되지 않은 경우 백업이 수행 되 면이 LSN은 first_lsn 와 일치 합니다. |
Backupset 테이블 내 LSN 컬럼
- LSN = Log Sequence Number의 약어
- Database_backup_lsn : 복원시 필요한 백업셋의 시작점 (Full백업의 first_lsn). Full백업은 이전 Full백업의 first_lsn.
- first_lsn : 백업시 시작 지점의 lsn
- last_lsn : 백업시 마지막 지점의 lsn ( Uncommitted 상태의 lsn 포함)
- Checkpoint_lsn : checkpoint 발생시 기록. 해당 값과 boot page의 checkpoint LSN 비교를 통해 redo 수행
- Checkpoint는 recovery interval 초과 시 혹은 Data 백업 (Full/Diff)시 동작
백업 테스트 (desc 정렬임)

- 빨강
- 연속되는 TRN백업사이에 이전 백업의 last_lsn과 현재 백업의 fist_lsn이 같음
- 이 말은 트랜잭션 로그 LSN 체인은 전체 또는 차등 데이터베이스 백업의 영향을 받지 않음을 의미
- 연속되는 TRN백업사이에 이전 백업의 last_lsn과 현재 백업의 fist_lsn이 같음
- 검정
- TRN/DIFF의 Database_backup_lsn는 복원시 필요한 최초 Full 백업본의 first_lsn과 동일
- 보라
- 본 테스트에서는 checkpoint 동작이 Full/Diff백업시에만 발생하여 TRN 백업의 Checkpoint_lsn값과 이전의 데이터 백업의 fisrt_lsn과 동일
- checkpoint 동작 (백업에 의한 X) 발생시 Checkpoint_lsn이 업데이트됨을 테스트로 확인
- checkpoint 1 수행 --> trn백업 수행 --> msdb..backupset 조회

'SQL Server > 테스트 (+스크립트)' 카테고리의 다른 글
[테스트] Checkpoint IO제한과 Indirect /direct 비교 (0) | 2022.03.15 |
---|---|
통계용 DB (스크립트 기반 Logshipping) 구성 (0) | 2021.09.14 |
분리보관용 서버 구성 (파티셔닝 적용 및 관리) (0) | 2021.09.14 |
도메인 독립 AlwaysOn 구성 (AD 미조인) (0) | 2021.06.27 |
AlwaysOn with Basic 도입 방안 (0) | 2021.06.26 |