티스토리 뷰
SQL Server 가용성 그룹에서의 데이터베이스 백업 정책을 잘 만들어야 한다.
[시나리오]
AG 노드가 2개 이며 Primary A, Secondary B Replica 의 환경에서 각 노드에서 각자 전체 백업과 로그 백업을 수행한다.
이런 환경에서 특정 시점 로그복원을 하는 경우에 로그백업 파일은 어떻게 관리를 해야 할까?
[결론]
각 노드에서 트랜잭션로그 백업을 받으면 모든 파일들의 LSN 으로 연결이 되어 있다.
그래서 중간의 로그파일이 누락되는 경우 모든 로그에 대하여 복원을 할 수 없을 경우도 발생한다.
[LAB]
각 노드에서 받은 트랜잭션의 로그 LSN 을 나열해 보자.
백업 순서
AG2 - Full Backup 1
AG1 - Full Backup 2
AG2 - Log Backup 1
AG2 - Log Backup 2
AG1 - Log Backup 3
AG1 - Log Backup 4
AG2 - Log Backup 5
순으로 백업을 받았다.
AG2 서버에서 백업 받은 파일로만 복원을 하려면 LSN 이 깨진 상태이므로 마지막 로그백업까지 복원을 하지 못한다.
가용성그룹의 운영포인트가 여기에 있다. 그래서 로그백업의 정책을 잘 구현해야 한다.
<AG백업LSN 확인>
(열 이름 없음) | backup_finish_date | first_lsn | last_lsn | checkpoint_lsn | database_backup_lsn | type |
AG2 | 2017-02-24 15:56:14.000 | 38000000020000001 | 38000000040800001 | 38000000037600037 | 38000000029600037 | 전체 1 |
AG2 | 2017-02-24 15:56:28.000 | 38000000020000001 | 38000000047200001 | 38000000044000001 | 38000000037600037 | 로그 1 |
AG2 | 2017-02-24 15:56:32.000 | 38000000047200001 | 39000000003200001 | 38000000050400001 | 38000000037600037 | 로그 2 |
AG2 | 2017-02-24 15:58:50.000 | 39000000011200001 | 39000000018400001 | 39000000016000001 | 38000000037600037 | 로그 5 |
로그2번의 last_lsn 39000000003200001 로 시작하는 First_lsn 로그백업 파일이 존재해야 복원이 가능하다.
해당 파일은 AG1의 로그백업 3번에 존재한다.
그래서 복원시 AG1의 로그백업 3번을 복원해야 한다.
(열 이름 없음) | backup_finish_date | first_lsn | last_lsn | checkpoint_lsn | database_backup_lsn | type |
AG1 | 2017-02-24 15:56:20.000 | 38000000037600037 | 38000000044000001 | 38000000037600037 | 38000000037600037 | D |
AG1 | 2017-02-24 15:56:37.000 | 39000000003200001 | 39000000006400001 | 39000000004000002 | 38000000037600037 | L |
AG1 | 2017-02-24 15:56:38.000 | 39000000006400001 | 39000000011200001 | 39000000008000001 | 38000000037600037 | L |
결론적으로 가용성그룹의 로그백업 LSN 은 모든 서버에서의 로그백업파일들과 연결이 되어 있고, 복원시 해당 파일들이 모두 존재해야
시점 복원이 가능하다는 결론이다.
키워드 : 로그백업LSN
'SQL Server' 카테고리의 다른 글
How It Works: When is the FlushCache message added to SQL Server Error Log (0) | 2017.04.26 |
---|---|
SQL 테이블 PK 추가 및 삭제하기 (0) | 2017.04.10 |
SQL Server 업그레이드 관리자 (0) | 2016.11.08 |
SQL Server 프로시저 암호화/복호화 (0) | 2016.11.08 |
Microsoft SQL Server 대 한 TLS 1.2 지원 (0) | 2016.09.26 |
- Total
- Today
- Yesterday