데이터베이스를 실패 지점으로 복원 - 전체 복구
적용 대상: SQL Server
이 항목에서는 실패 지점으로 복원하는 방법을 설명합니다. 이 항목에서는 전체 또는 대량 로그 복구 모델을 사용하는 데이터베이스와 관련된 내용을 다룹니다.
실패한 지점으로 복원하려면
다음 기본 BACKUP 문을 실행하여 비상 로그를 백업합니다.
BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY, NO_TRUNCATE;
다음의 기본 RESTORE DATABASE 문을 실행하여 전체 데이터베이스 백업을 복원합니다.
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
선택적으로 다음의 기본 RESTORE DATABASE 문을 실행하여 차등 데이터베이스 백업을 복원합니다.
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
RESTORE LOG 문에서 WITH NORECOVERY를 지정하여 1단계에서 만든 비상 로그 백업을 포함하여 각 트랜잭션 로그를 적용합니다.
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;
다음 RESTORE DATABASE 문을 실행하여 데이터베이스를 복구합니다.
RESTORE DATABASE <database_name> WITH RECOVERY;
예시
테스트를 실행하기 전에 다음 준비 요소도 완료해야 합니다.
AdventureWorks2022
데이터베이스의 기본 복구 모델은 단순 복구 모델입니다. 이 복구 모델은 실패 지점까지 복원을 지원하지 않으므로 다음 ALTER DATABASE 문을 실행하여 전체 복구 모델을 사용하도록AdventureWorks2022
을 설정합니다.USE master; GO ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;
다음 BACKUP 문을 사용하여 데이터베이스의 전체 데이터베이스 백업을 만듭니다.
BACKUP DATABASE AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Data.bck';
일상적인 로그 백업을 만듭니다.
BACKUP LOG AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Log.bck';
다음 예에서는 AdventureWorks2022
데이터베이스의 비상 로그 백업을 만든 후 이전에 만들어진 백업을 복원합니다. 이 단계에서는 로그 디스크에 액세스할 수 있다고 가정합니다.
먼저 현재 로그를 캡처하고 데이터베이스를 복원 상태로 두는 데이터베이스의 비상 로그 백업을 만듭니다. 그런 다음 데이터베이스 백업을 복원하고 이전에 만든 일상적인 로그 백업을 적용한 후 비상 로그 백업을 적용합니다. 끝으로 별도의 단계로 데이터베이스를 복구합니다.
참고 항목
기본 동작은 최종 백업을 복원하는 문의 일부로 데이터베이스를 복구하는 것입니다.
/* Example of restoring a to the point of failure */
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.
BACKUP LOG AdventureWorks2022
TO DISK = 'C:\AdventureWorks2022_Log.bck'
WITH NORECOVERY;
GO
-- Step 2: Restore the full database backup.
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'C:\AdventureWorks2022_Data.bck'
WITH NORECOVERY;
GO
-- Step 3: Restore the first transaction log backup.
RESTORE LOG AdventureWorks2022
FROM DISK = 'C:\AdventureWorks2022_Log.bck'
WITH NORECOVERY;
GO
-- Step 4: Restore the tail-log backup.
RESTORE LOG AdventureWorks2022
FROM DISK = 'C:\AdventureWorks2022_Log.bck'
WITH NORECOVERY;
GO
-- Step 5: Recover the database.
RESTORE DATABASE AdventureWorks2022
WITH RECOVERY;
GO