1. Database Restore
2. Restoring Option
(1) Files menu option
Relocate all files to folder
Backup file에 설정된 기존 파일 경로를 신규 설치된 서버나 새로운 파일경로로 변경하여 복원 작업을 한다.
(2) Options
① Overwrite the existing database (WITH REPLACE)
= 기존 DB '덮어쓰기'
RESTORE DATABASE [복원되는 DB의 이름] FROM DISK = '[백업세트 디렉토리]'
WITH REPLACE;
- '복원되는 DB의 이름'에 해당하는 DB를 '백업세트 디렉토리'에 해당하는 백업세트로 덮어쓰는 옵션
- 웬만하면 사용하지 않는 것을 권장한다. 복구 DB세트와 복원 대상이 되는 이름의 DB가 서로 다른 DB일 경우, DB 자체가 아예 바뀌는 것이기 때문에 매우 위험하다. 또한 최근에 기록된 로그가 백업되지 않았으므로(Tail-log를 백업하라는 요구사항보다 우선 적용되기 때문), 해당 옵션을 사용함으로써 commit 된 작업이 모두 손실될 우려가 있다.
② Preserve the replication settings (WITH KEEP_REPLICATION)
= 복제 설정 유지
RESTORE DATABASE [복원되는 DB의 이름] FROM DISK = '[백업세트 디렉토리]'
WITH KEEP_REPLICATION;
- 복제된 DB (DB copy본)를 가지고 백업할 경우, 백업세트가 생성된 서버 및 DB로 복원할 수도 있고, 아예 다른 서버 또는 DB로도 복원할 수 있는데, 이 경우 기본적으로 복제 설정(@publication, '구독' 등)은 유지 되지 않는다.
그러나, 위 옵션을 사용할 경우, 아예 다른 서버 또는 DB로도 복원할 경우에도 복제 설정을 그대로 유지하게 된다.
- 위 옵션을 사용할 경우, commit 되지 않은 트랜잭션을 rollback 하여 DB를 곧바로 사용할 수 있는 상태로 유지하게 된다.
③ Restrict access to the restored database (WITH RESTRICTED_USER)
= 복원된 DB에 대한 엑세스를 제한
RESTORE DATABASE [복원되는 DB의 이름] FROM DISK = '[백업세트 디렉토리]'
WITH RESTRICTED_USER;
- db_owner, dbcreator 또는 sysadmin 의 멤버만 복원된 DB를 엑세스할 수 있게끔 제한한다.
④ Recovery State
- RESTORE WITH RECOVERY
RESTORE DATABASE [복원되는 DB의 이름] FROM DISK = '[백업세트 디렉토리]'
WITH RECOVERY;
- Default 옵션. DB 복원이 완료된 후, 곧바로 DB가 On-line 상태로 바뀐다. (그러므로, 한 번에 완전히 복구가 가능할 때 사용.)
- DB 복원을 하는 동안 commit 되지 않은 트랜잭션은 롤백하여 On-line 상태로 바꾸는 것이므로, Full 복구 모델 또는 Bulk-logged 복구 모델에서만 이 옵션을 선택해야 한다.
- RESTORE WITH NORECOVERY
RESTORE DATABASE [복원되는 DB의 이름] FROM DISK = '[백업세트 디렉토리]'
WITH NORECOVERY;
- DB를 'Restroing 상태'로 유지하는 옵션. Restoring 상태가 되면, 해당 DB는 오프라인 상태가 된다.
- 트랜잭션 로그 백업 세트 등을 전체 백업 세트에 붙일 때 사용하는 옵션이다.
- 해당 옵션을 사용한 후에는 마지막에 반드시 RECOVERY 옵션을 달아주어야, 이후에 온라인 상태가 되어 해당 DB가 사용이 가능하다.
RESTORE DATABASE [복원 DB명] WITH RECOVERY;
- RESTORE WITH STANDBY
RESTORE DATABASE [복원되는 DB의 이름] FROM DISK = '[백업세트 디렉토리]'
WITH STANDBY = '[standby_file_name(디렉토리)]';
- DB 복원 후에, 제한된 읽기 전용 엑세스로만 DB를 사용할 수 있도록 한다. 쉽게 말해 DB를 '대기 모드'로 유지한다.
- 해당 옵션은 off-line 복원에서만 사용할 수 있으며, on-line 복원에서는 사용할 수 없다.
- 해당 옵션으로 Restore 작업이 완료되면, 복구 결과를 취소할 수 있게끔 지정해 놓았던 대기 파일을 자동으로 삭제한다.
⑤ Tail-Log backup (비상 로그 백업)
- Take tail-log backup before restroe : 복원 작업 전, tail-log(비상 로그) 백업을 진행할 지 말지의 여부를 선택하는 옵션.
- Tail-log(비상 로그) 백업 : 아직 백업되지 않은 레코드를 캡처하여, 작업 손실을 방지하고 로그 체인을 그대로 유지함.
- Leave source database in the restoring state : Tail-log 백업의 대상이 되는 소스 DB를 'Restroing 상태'로 둔다.
⑥ Server connections (서버 연결)
- Clsoe existing connections to destination database : 복원대상이 되는 DB(Destination Database)의 커넥션들을 모두 종료한다.
=> 복원 작업을 수행하기 전, 해당 DB가 Single-User 모드로 설정되고 복원 작업이 완료될 때에 Multi-User 모드로 돌아온다.
⑦ Prompt
- 각 백업세트마다 복원 과정을 계속 진행할 지 묻는 대화 상자를 표시할 지 말지 결정하는 부분
이때 이 대화 상자에는 다음 미디어 세트의 이름과 다음 백업 세트의 이름 및 설명이 표시됨.
참고)
'[DB] SQL SERVER' 카테고리의 다른 글
[MSSQL] 데이터베이스 복원 시 Login <-> User 매핑 에러 해결 (1) | 2024.12.11 |
---|---|
[MSSQL] DATABASE Collation 변경하기 (1) | 2024.11.18 |
[MSSQL] sp_MSforeachdb, sp_MSforeachtable (0) | 2024.11.18 |
[MSSQL] Fill Factor (채우기 비율)에 관한 오해와 진실 (1) | 2024.11.15 |
[MSSQL] 누락된 인덱스 정보 (추천 인덱스)_Missing Index Query (0) | 2024.11.14 |