본 게시물은 개인적인 의견으로 작성되었으니 절대적인 정보가 아닐 수 있습니다. 참고만 하시고 궁금한 사항이 있으시면 연락주세요.

티스토리 뷰

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

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday