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/DIFF의 Database_backup_lsn는 복원시 필요한 최초 Full 백업본의 first_lsn과 동일 
  • 보라
    • 본 테스트에서는 checkpoint 동작이 Full/Diff백업시에만 발생하여 TRN 백업의 Checkpoint_lsn값과 이전의 데이터 백업의  fisrt_lsn과 동일
    • checkpoint 동작 (백업에 의한 X) 발생시 Checkpoint_lsn이 업데이트됨을 테스트로 확인
      • checkpoint 1 수행 --> trn백업 수행 --> msdb..backupset 조회
      •  

 

+ Recent posts