DB (데이터베이스)/MS-SQL

[ms-sql] ms-sql 복원방법

뜽배 2024. 2. 2. 10:52
728x90
반응형


일단 ms-sql의 기본 복원 순서를 살펴보자



1. 기본 복원 순서 
1-1. 트랜잭션 로그 꼬리 백업
1-2. 마지막 전체 백업을 복원
1-3. 그 이후로 받은 마지막 차등 백업을 복원
1-4. 그 이후로 받은 모든 로그 백업을 복원 (마지막은 1-1.에서 받은 마지막 트랜잭션 로그 꼬리백업을 복원)



위 순서로 복원을 한다.

백업받는 방식 별로 복원하는 방법을 알아보자


2. 전체백업만 하는 경우 복원

2-1 복구모델이 '전체'라면 우선 로그 꼬리 백업을 받는다 (복구모델이 '전체'인 경우에 한번도 로그를 백업 받은 적이 없다)
2-2 가장 최근 '전체백업'을 복원(norecovery)함 (로그 꼬리 백업이 없다면 recovery옵션 사용)
2-3 '로그꼬리백업'을 받았다면 이것을 복원(recovery)함


3. 전체백업 + 로그백업 하는 경우 복원

3-1 로그백업을 받는다는 것은 복구모델이 '전체'란 뜻이다. 우선 로그 꼬리 백업을 받는다.
3-2 가장 최근 '전체백업'을 복원(norecovery)한 후 그 이후로 받은 모든 '로그백업'을 복원 (norecovery)함
3-3 '로그꼬리백업'을 복원(recovery)


4. 전체백업 + 차등백업 + 로그백업 하는 경우 복원

4-1 로그백업을 받는다는 것은 복구모델이 '전체'란 뜻이다. 우선 로그 꼬리 백업을 받는다.
4-2 가장 최근 '전체백업'을 복원(norecovery)한 후 그 이후로 받은 마지막 '차등백업'을 복원(norecovery)함
4-3 '차등백업' 이후로 받은 모든 '로그백업'을 복원(norecovery)한 후, '로그꼬리백업'을 복원(recovery)함


복원할 일이 생길 때 복원 전략 시뮬레이션을 짠다.
예를들어 아래와 같은 백업 전략을 가진 DB 가 있다고 하자

 



* 전체백업 : 매주 일요일, 02:00
* 차등백업 : 월~토, 02:00
* 트랜잭션로그백업 : 월~토, 6시간 간격 (00:00/06:00/12:00/18:00)

이 때 토요일 17:30분에 손상될 경우 복원 시뮬레이션?


0. 트랜잭션로그 꼬리 백업
1. 일요일 02:00에 받은 전체백업 복구 (norecovery)
2. 토요일 02:00에 받은 차등백업 복구 (norecovery)
3. 토요일 06:00 로그백업 복구, 토요일 12:00 로그백업 복구 (norecovery)
4. 트랜잭션로그 꼬리 백업 복구 (recovery)

 



위와 같은 순서로 복구전략 시뮬레이션을 짤 수 있다.

트랜잭션로그 꼬리백업이 굉장히 중요하다 꼭 상기할 수 있도록 하자.

728x90
반응형