방법: 지정 시간 복원(Transact-SQL)
이 항목에서는 지정 시간으로 복원하는 방법에 대해 설명합니다.
시간을 지정하여 복원하려면
NORECOVERY 옵션을 사용하여 RESTORE DATABASE 문을 실행합니다.
[!참고]
부분 복원 시퀀스에서 FILESTREAM 파일 그룹이 제외될 경우 지정 시간 복원은 지원되지 않습니다. 복원 시퀀스를 강제로 계속할 수 있지만 RESTORE 문에서 누락된 FILESTREAM 파일 그룹은 복원되지 않습니다. 지정 시간 복원을 강제로 수행하려면 후속 RESTORE LOG 문에도 지정해야 하는 STOPAT, STOPATMARK 또는 STOPBEFOREMARK 옵션과 함께 CONTINUE_AFTER_ERROR 옵션을 지정합니다. CONTINUE_AFTER_ERROR를 지정하면 부분 복원 순서가 성공하고 FILESTREAM 파일 그룹이 복구 불가능한 상태가 됩니다.
RESTORE LOG 문을 실행하여 각 로그 백업을 적용하며 다음을 지정합니다.
트랜잭션 로그가 적용될 데이터베이스의 이름
트랜잭션 로그 백업을 복원하는 백업 장치
RECOVERY 및 STOPAT 옵션. 지정된 시간이 트랜잭션 로그에서 수용하는 시간을 초과하는 경우처럼 요청한 시간이 트랜잭션 로그 백업에 포함되지 않을 경우 경고가 생성되고 데이터베이스는 복구되지 않은 상태로 남습니다.
예
다음 예에서는 April 15, 2020, 12:00 AM 상태로 데이터베이스를 복원하고 여러 로그 백업이 연관된 복원 작업을 보여 줍니다. 백업 장치 AdventureWorksBackups에서 복원할 전체 데이터베이스 백업은 해당 장치의 세 번째 백업 세트(FILE = 3)이고, 첫 번째 로그 백업은 네 번째 백업 세트(FILE = 4)이고, 두 번째 로그 백업은 다섯 번째 백업 세트(FILE = 5)입니다.
중요 |
---|
AdventureWorks 데이터베이스는 단순 복구 모델을 사용합니다. 로그 백업을 허용하려면 전체 데이터베이스 백업을 수행하기 전에 ALTER DATABASE AdventureWorks SET RECOVERY FULL을 사용하여 데이터베이스에서 전체 복구 모델을 사용하도록 설정해야 합니다. |
RESTORE DATABASE AdventureWorks
FROM AdventureWorksBackups
WITH FILE=3, NORECOVERY;
RESTORE LOG AdventureWorks
FROM AdventureWorksBackups
WITH FILE=4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE LOG AdventureWorks
FROM AdventureWorksBackups
WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks WITH RECOVERY;
GO