파일 복원(전체 복구 모델)

적용 대상:SQL Server

이 항목은 전체 또는 대량 로드 복구 모델에서 여러 파일 또는 파일 그룹을 포함하는 데이터베이스에만 관련됩니다.

파일 복원에서 목표는 전체 데이터베이스를 복원하지 않고 하나 이상의 손상된 파일을 복원하는 것입니다. 파일 복원 시나리오는 적절한 데이터를 복사, 롤 포워드 및 복구하는 단일 복원 시퀀스로 구성됩니다.

복원 중인 파일 그룹이 읽기/쓰기가 가능한 경우 손상되지 않은 로그 백업 체인은 마지막 데이터 또는 차등 백업이 복원된 후에 적용해야 합니다. 그러면 파일 그룹이 로그 파일의 현재 활성 로그 레코드에 있는 로그 레코드로 전달됩니다. 일반적으로 복구 지점은 로그의 후반부이지만 반드시 그런 것은 아닙니다.

복원 중인 파일 그룹이 읽기 전용인 경우 일반적으로 로그 백업을 적용할 필요가 없으며 건너뜁니다. 파일이 읽기 전용이 된 후 백업이 수행된 경우 복원할 마지막 백업입니다. 대상 지점에서 롤 포워드가 중지됩니다.

파일 복원 시나리오는 다음과 같습니다.

  • 오프라인 파일 복원

    오프라인 파일 복원에서 손상된 파일 또는 파일 그룹이 복원되는 동안 데이터베이스는 오프라인 상태입니다. 복원 시퀀스가 끝나면 데이터베이스가 온라인 상태가됩니다.

    모든 버전의 SQL Server는 오프라인 파일 복원을 지원합니다.

  • 온라인 파일 복원

    온라인 파일 복원에서 데이터베이스가 복원 시 온라인인 경우 파일을 복원하는 동안 온라인 상태가 기본. 그러나 파일을 복원할 각 파일 그룹은 복원 작업 중에 오프라인 상태입니다. 오프라인 파일 그룹의 모든 파일이 복구되면 파일 그룹이 자동으로 온라인 상태가 됩니다.

    온라인 페이지 및 파일 복원 지원에 대한 자세한 내용은 SQL Server 2022의 버전 및 지원되는 기능을 참조하세요. 온라인 복원에 대한 자세한 내용은 온라인 복원(SQL Server)을 참조하세요.

    파일 복원을 위해 데이터베이스를 오프라인으로 설정하려면 다음 ALTER DATABASE 문을 실행하여 복원 시퀀스를 시작하기 전에 데이터베이스를 오프라인으로 전환합니다. ALTER DATABASEdatabase_name SET OFFLINE.

파일 백업에서 손상된 파일 복원

  1. 하나 이상의 손상된 파일을 복원하기 전에 비상 로그 백업만들려고 시도합니다.

    로그가 손상된 경우 비상 로그 백업을 만들 수 없으며 전체 데이터베이스를 복원해야 합니다.

    트랜잭션 로그를 백업하는 방법에 대한 자세한 내용은 트랜잭션 로그 백업(SQL Server)을 참조하세요.

    Important

    오프라인 파일 복원의 경우 파일을 복원하기 전에 항상 비상 로그 백업을 수행해야 합니다. 온라인 파일을 복원하려면 이 파일을 복원한 후에 로그 백업을 수행해야 합니다. 이러한 로그 백업은 파일을 데이터베이스의 나머지 부분과 일치하는 상태로 복구해야 하기 때문에 필요합니다.

  2. 각 손상된 파일을 해당 파일의 최신 백업에서 복원합니다.

  3. 복원된 각 파일에 대한 가장 최근의 차등 파일 백업(있을 경우)을 복원합니다.

  4. 복원된 파일 중 가장 오래된 백업부터 시작하여 1단계에서 만든 비상 로그 백업으로 끝나는 트랜잭션 로그 백업을 순서대로 복원합니다.

    데이터베이스를 일관된 상태로 만들려면 파일 백업 후에 만들어진 트랜잭션 로그 백업을 복원해야 합니다. 복원된 파일에 적용되는 변경 내용만 적용되므로 트랜잭션 로그 백업을 신속하게 롤포워드할 수 있습니다. 손상되지 않은 파일이 복사된 후 롤 포워드되지 않으므로 개별 파일을 복원하는 것이 전체 데이터베이스를 복원하는 것보다 더 좋을 수 있습니다. 하지만 전체 로그 백업 체인은 읽기가 가능해야 합니다.

  5. 데이터베이스를 복구합니다.

참고 항목

파일 백업을 사용하여 데이터베이스를 이전 시점으로 복원할 수 있습니다. 이렇게 하려면 전체 파일 백업 집합을 복원한 다음 트랜잭션 로그 백업을 순서대로 복원하여 가장 최근에 복원된 파일 백업이 종료된 후의 대상 지점에 도달해야 합니다. 특정 시점 복구에 대한 자세한 내용은 SQL Server 데이터베이스를 특정 시점으로 복원(전체 복구 모델)을 참조하세요.

오프라인 파일 복원에 대한 Transact-SQL 복원 시퀀스(전체 복구 모델)

파일 복원 시나리오는 해당 데이터를 복사하고 롤포워드하고 복구하는 단일 복원 시퀀스로 이루어집니다.

이 섹션에서는 파일 복원 시퀀스에 대한 필수 RESTORE 옵션을 보여줍니다. 이 용도와 관련 없는 구문 및 세부 사항은 생략됩니다.

다음 샘플 복원 시퀀스는 WITH NORECOVERY를 사용하여 두 보조 파일 AB오프라인 복원을 보여줍니다. 다음으로, NORECOVERY와 함께 두 개의 로그 백업이 적용되고 비상 로그 백업이 수행되며 WITH RECOVERY를 사용하여 복원됩니다.

참고 항목

다음 샘플 복원 시퀀스는 파일을 오프라인으로 전환한 다음 비상 로그 백업을 만듭니다.

--Take the file offline.  
ALTER DATABASE database_name MODIFY FILE SET OFFLINE;  
-- Back up the currently active transaction log.  
BACKUP LOG database_name  
   TO <tail_log_backup>  
   WITH NORECOVERY;  
GO   
-- Restore the files.  
RESTORE DATABASE database_name FILE=name   
   FROM <file_backup_of_file_A>   
   WITH NORECOVERY;  
RESTORE DATABASE database_name FILE=<name> ......  
   FROM <file_backup_of_file_B>   
   WITH NORECOVERY;  
-- Restore the log backups.  
RESTORE LOG database_name FROM <log_backup>   
   WITH NORECOVERY;  
RESTORE LOG database_name FROM <log_backup>   
   WITH NORECOVERY;  
RESTORE LOG database_name FROM <tail_log_backup>   
   WITH RECOVERY;  

예제

관련 작업

파일과 파일 그룹을 복원하려면

참고 항목

백업 및 복원: 상호 운용성 및 공존(SQL Server)
차등 백업(SQL Server)
전체 파일 백업(SQL Server)
백업 개요(SQL Server)
복원 및 복구 개요(SQL Server)
RESTORE(Transact-SQL)
전체 데이터베이스 복원(단순 복구 모델)
증분 복원(SQL Server)