다음을 통해 공유


데이터베이스를 실패 지점으로 복원 - 전체 복구

적용 대상: SQL Server

이 항목에서는 실패 지점으로 복원하는 방법을 설명합니다. 이 항목에서는 전체 또는 대량 로그 복구 모델을 사용하는 데이터베이스와 관련된 내용을 다룹니다.

실패한 지점으로 복원하려면

  1. 다음 기본 BACKUP 문을 실행하여 비상 로그를 백업합니다.

    BACKUP LOG <database_name> TO <backup_device>   
       WITH NORECOVERY, NO_TRUNCATE;  
    
  2. 다음의 기본 RESTORE DATABASE 문을 실행하여 전체 데이터베이스 백업을 복원합니다.

    RESTORE DATABASE <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  3. 선택적으로 다음의 기본 RESTORE DATABASE 문을 실행하여 차등 데이터베이스 백업을 복원합니다.

    RESTORE DATABASE <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  4. RESTORE LOG 문에서 WITH NORECOVERY를 지정하여 1단계에서 만든 비상 로그 백업을 포함하여 각 트랜잭션 로그를 적용합니다.

    RESTORE LOG <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  5. 다음 RESTORE DATABASE 문을 실행하여 데이터베이스를 복구합니다.

    RESTORE DATABASE <database_name>   
       WITH RECOVERY;  
    

예시

테스트를 실행하기 전에 다음 준비 요소도 완료해야 합니다.

  1. AdventureWorks2022 데이터베이스의 기본 복구 모델은 단순 복구 모델입니다. 이 복구 모델은 실패 지점까지 복원을 지원하지 않으므로 다음 ALTER DATABASE 문을 실행하여 전체 복구 모델을 사용하도록 AdventureWorks2022을 설정합니다.

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;  
    
  2. 다음 BACKUP 문을 사용하여 데이터베이스의 전체 데이터베이스 백업을 만듭니다.

    BACKUP DATABASE AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Data.bck';  
    
  3. 일상적인 로그 백업을 만듭니다.

    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  

참고 항목

BACKUP(Transact-SQL)
RESTORE(Transact-SQL)