1.데이터베이스 백업
1.1 백업 종류
데이터베이스 백업의 종류는 다음과 같다.
전체 백업, 증분 백업, 차등 백업, 트랜잭션 백업
전체 백업 : 데이터베이스의 모든 데이터를 백업 하는 것을 의미 한다.
증분 백업 : 전체 백업후 증가한 데이터만 백업하며 다음 증분 백업시에는 마지막 증분 백업 데이터를 기준으로 증가한 데이터만 백업 한다. 그럼으로 매번 증분 백업 후의 늘어난 데이터베이스만 백업 함으로 백업 파일의 크기는 작지만 전체 백업 후 여러개의 증분 백업이 생성 됨으로 해당 되는 증분 백업을 모두 포함하여 복구 해야 함으로 번거롭고 복구에 시간이 걸리는 단점이 존재 한다.
차등 백업 : 전체 백업후 증가한 데이터만 백업하지만 차등 백업의 기준이 무조건 전체 백업 이후 임으로
백업되는 파일의 양은 많지만 복구시 전체 백업과 마지막 차등 백업 파일만을 가지고 복구 하게되어 시간이 단축된다.
트랜잭션 백업 : 지정된 시간에 지정된 크기의 트랜잭션 백업을 진행 할 경우 지정 시간안에 늘어난 데이터만큼만 백업 하고 지정된 크기로 LDF 파일을 재조정 하여 데이터베이스가 필요 이상으로 페이징을 하여 I/O가 증가 하는 것을 방지 할 수 있습니다.
1.2 적용된 백업
이 문서에 적용된 적용된 백업은 다음과 같다.
전체 백업, 차등 백업, 트랜잭션 백업
1.3 적용된 백업 스케쥴
전체 백업 : 로컬 매일 04시 , 원격 04:30분
차등 백업 : 매시 00분, 원격 매시 10분
트랜잭션 백업 : 매 10분 마다, 백업 후 200MB로 재조정
복원 가능 시점
*로컬 백업 : 장애 발생전 최대 10분의 데이터베이스
2.데이터베이스 복원
2.1 복원 준비 단계
1. 전체 백업 : 04시 생성 (파일명 ex : 데이터베이스1_backup_201002080400.bak ) 2. 차등 백업 : 10시 생성 (파일명 ex : 데이터베이스1 1_backup_201002081000.bak ) 3. 트랜잭션 백업 : 10시 10분, 10시 20분 생성 (파일명 ex : 데이터베이스1 1backup_20100208101000.trn , 데이터베이스1 1backup_20100208102000.trn )
2.2 복원 순서 및 방식
1. 모든 네트워크 연결을 차단한다. 콘솔 작업시 네트워크의 활성화되어 있는 네트워크를 중지 시키는 것만으로도 되며 원격 작업시 1433번 포트에 타 네트워크에서 접근을 하지 못하게 설정 한다.
2.윈도우 계정으로 로컬의 SQLServer에 접근 한다.
3.데이터베이스 (오른쪽 마우스 클릭) -> 데이터베이스 복원을 클릭 한다.


4.전체 백업을 복원 하기 위해 복원에 사용할 원본 -> 장치를 선택 후 우측의 “...” 을 클릭하여 백업 지정 창을 띄운 후 백업 미디어 : 파일 체크 하고 추가를 클릭 하여 전체 백업 파일을 선택한다.

5.복원에 사용할 원본 에서 목록에 있는 데이터베이스를 체크 한다.

6.상단의 복원 대상의 데이터베이스를 선택한다. ( 조금전에 선택한 데이터베이스 명이 새로 생겼을 것이다.)

7.전체 복원만 진행 하려면 여기서 바로 확인을 클릭 하면 바로 복원 작업이 진행 된다. 하지만 우린 차등 백업도 복원 할것임으로 왼쪽 페이지 선택 메뉴의 옵션을 선택한다.
8.복원 옵션에서 데이터베이스 파일을 다음으로 복원 에서 복원될 장소를 지정 할 수도 있다.

9.복구 상태에서 “데이터베이스를 비작동 상태로 유지하고 커밋되지 않은 트랜잭션을 롤백하지 않습니다. 추가 트랜잭션 로그를 복원 할 수 있습니다” 를 선택후 확인을 클릭하면 전체 복구를 진행 한다.

10. 전체 복구를 완료 하였다. 여기까지가 오전 04시까지의 복원이 완료된것이다.

11. 정상적으로 전체 백업이 복원 되면 다음과 같은 화면을 볼 수 있다. ( 전체백업만 진행한 것이라면 아래 화면과는 다르게 정상으로 보이지만 차등 백업을 진행 한다면 다음의 화면과 같이 복원 중... 으로 떠야 정상이다.

12. 차등 백업을 복원 한다. 복원할 파일만 차등 백업 파일을 선택하며 전체적인 과정은 아래와 같다. 이미지로 설명을 대처 하겠다. 데이터베이스 복원을 선택 한다.

13. 모든 순서는 파일명을 제외한 전체 백업 복원과 동일 하다 . ( * 옵션에서 복원 상태 2번째의 “데이터베이스를 비작동 상태로 유지하고 커밋되지 않은 트랜잭션을 롤백하지 않습니다. 추가 트랜잭션 로그를 복원 할 수 있습니다” 를 선택한다. ) 물론 여기서 다음의 트랜잭션 백업 복구를 진행 하지 않을 것이라면 복원 옵션의 첫번째를 선택후 확인을 클릭하면 복원후 추가 복원을 하지 않게 된다.

14. 차등 백업의 복원을 완료 하였다. 여기까지가 오전 10시 데이터까지 복구가 완료 된것이다.

15. 트랜잭션 백업의 복원을 진행 할 것이다. 작업 -> 복원 -> 트랜잭션 로그를 선택 한다.

16. 복구해야할 트랜잭션 로그가 총 2개인것을 기억 해두고 (10시 10분, 10시 20분의 트랜잭션) 아래의 복원할 트랜잭션 10시 10분에 생성된 것을 선택한다. 또한 아래의 복원 위치를 통하여 복구할 좀더 정확한 시간의 지정도 가능하다. 우리는 트랜잭션을 10분마다 백업했음으로 트랜잭션이 작성된 10분 이내에서만 가능 할 것이다.

17.여기서도 옵션 에서 복구 상태 2번째를 선택해야 추가로 트랜잭션을 복구 할 수 있다. 물론 복구를 종료 하려면 첫번째를 선택한다.

18. 확인을 클릭 한다. 여기까지가 10시 10분의 데이터까지 복원된 상태이다.

19. 10시 20분의 트랜잭션 복원도 위의 (15번 이후) 트랜잭션 복원과 동일하다. 단 복원 파일은 10시 20분의 트랜잭션 로그이며 옵션 의 복구 상태는 첫번째를 선택하여 모든 복원이 종료 됨을 알려야 한다. 확인을 클릭한다.

20. 완료 되었다는 메세지를 볼 수 있다. 이제는 정말로 데이터베이스가 복원 된것이다.

21. 데이터베이스 목록에서 아래의 그림과 같이 기존에는 “복원 중...” 에서 정상적인 데이터베이스명이 표시 되는것을 확인 할 수 있다.

22. 네트워크 단에서 1433port 로 다른 사용자의 정상적인 SQLServer 접속을 허용 한다.
2.3 복원된 데이터의 확인
*최근 사용자 로그인 정보등의 로그 테이블에서 조회를 해보면 알 수 있다. (이건 데이터베이스 마다 다름으로 로그 관련된 테이블을 직접 찾아 보기 바란다.)




















