MSSQL 은 전체 복원, 차등 복원, 로그 복원을 지원합니다.
전체 복원과 차등 복원은 같은 구문을 사용합니다.
구문은 다음과 같습니다.
RESTORE DATABASE AdventureWorks FROM DISK = 'C:\백업폴더\advbackup.bak';
로그 복원 문법은 다음과 같습니다.
RESTORE LOG AdventureWorks FROM DISK = 'C:\백업폴더\advbackup_log.bak';
복원이 완료되면 다른 사용자는 바로 데이터베이스에 접근할 수 있습니다.
하지만 전체 백업과 로그백업을 병행한 경우에는, 전체 복원을 한 후에 로그 복원을 해야 합니다.
전체 복원만 한 상태에서 사용자가 데이터베이스에 접근한다면 아직 로그 복원되지 않은 불완전한 데이터베이스에 접근하는 것이기 때문엡니다.
전체 복원을 하고 아직 복원이 완료된 것이 아니라는 표시를 함으로써 사용자가 접근불가 설정
이 때 사용하는 옵션은 WITH NORECOVERY 입니다.
RESTORE DATABASE AdventureWorks FROM DISK = 'C:\백업폴더\advbackup.bak' WITH NORECOVERY;
RESTORE LOG AdventureWorks FROM DISK = 'C:\백업폴더\advbackup_log.bak'
NORECOVERY 옵션을 사용하였을 경우에는 WITH RECOVERY 구문을 한번 더 사용하여 복원 중 상태를 종료하여야 합니다.
RESTORE DATABASE AdventureWorks WITH RECOVERY;
전체 복원 후 데이터가 정상인지 확인하기 위해 db_owner, sysadmin 권한을 가진 사용자만 접근하게 하는 방법
RESTORE DATABASE AdventureWorks FROM DISK = 'C:\백업폴더\advbackup.bak' WITH RESTRICTED_USER;
RESTORE LOG AdventureWorks FROM DISK = 'C:\백업폴더\advbackup_log.bak'
복원 시 데이터/로그 파일의 경로를 설정
RESTORE DATABASE AdventureWorks FROM DISK = 'C:\백업폴더\advbackup.bak'
WITH MOVE 'AdventureWorks_data' TO 'D:\Data\adv.mdf'
,MOVE 'AdventureWorks_log' TO 'D:\Data\adv.ldf';
원래 파일이 있는 경우 덮어쓰는 방법
RESTORE DATABASE AdventureWorks FROM DISK = 'C:\백업폴더\advbackup.bak' WITH REPLACE;
백업에 관련된 포스팅은 아래 url 을 참고해 주세요.
'SQL Server > SQL Server 이중화_백업' 카테고리의 다른 글
[MSSQL] 데이터베이스 백업과 복구해보기 (0) | 2019.04.16 |
---|---|
[MSSQL] 백업장치 만들고 삭제해보기 (0) | 2019.03.21 |
[MsSQL] 데이터베이스 모델과 백업, 스냅샷 방법 및 종류 알아보기 (0) | 2019.03.19 |
[MsSQL] 이중화 Microsoft Cluster Service(MSCS) 방식 설정하기 (2) | 2019.02.02 |
[MsSQL] 이중화 로그 전달 Log Shipping 방식 설정하기 (1) | 2019.01.22 |