파일 복원(전체 복구 모델)File Restores (Full Recovery Model)

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

이 항목에서는 전체 또는 대량 로드 복구 모델에서 데이터베이스에 여러 개의 파일 또는 파일 그룹이 있는 경우와 관련된 내용을 다룹니다.This topic is relevant only for databases that contain multiple files or filegroups under the full or bulk-load recovery model.

파일 복원의 목표는 전체 데이터베이스를 복원하지 않고 하나 이상의 손상된 파일을 복원하는 것입니다.In a file restore, the goal is to restore one or more damaged files without restoring the whole database. 파일 복원 시나리오는 해당 데이터를 복사하고 롤포워드하고 복구하는 단일 복원 시퀀스로 이루어집니다.A file restore scenario consists of a single restore sequence that copies, rolls forward, and recovers the appropriate data

복원 중인 파일 그룹이 읽기/쓰기가 가능한 경우 손상되지 않은 로그 백업 체인은 마지막 데이터 또는 차등 백업이 복원된 후에 적용해야 합니다.If the filegroup that is being restored is read/write, an unbroken chain of log backups must be applied after the last data or differential backup is restored. 이를 통해 파일 그룹을 로그 파일에 있는 현재 활성 로그 레코드의 로그 레코드로 가져옵니다.This brings the filegroup forward to the log records in the current active log records in the log file. 일반적으로 복구 지점은 로그의 후반부이지만 반드시 그런 것은 아닙니다.The recovery point is typically near the end of log, but not necessarily.

복원 중인 파일 그룹이 읽기 전용인 경우 일반적으로 로그 백업을 적용할 필요가 없으므로 건너뜁니다.If the filegroup that is being restored is read-only, usually applying log backups is unnecessary and is skipped. 파일이 읽기 전용 상태가 된 이후에 백업이 수행되면 마지막 백업이 복원되고If the backup was taken after the file became read-only, that is the last backup to restore. 롤포워드가 대상 지점에서 정지됩니다.Roll forward stops at the target point.

파일 복원 시나리오는 다음과 같습니다.The file-restore scenarios are as follows:

  • 오프라인 파일 복원Offline file restore

    오프라인 파일 복원에서 손상된 파일 또는 파일 그룹이 복원되는 동안 데이터베이스는 오프라인 상태입니다.In an offline file restore, the database is offline while damaged files or filegroups are restored. 복원 시퀀스의 마지막에 데이터베이스는 온라인 상태가 됩니다.At the end of the restore sequence, the database comes online.

    모든 버전의 SQL Server 2017SQL Server 2017 는 오프라인 파일 복원을 지원합니다.All editions of SQL Server 2017SQL Server 2017 support offline file restore.

  • 온라인 파일 복원Online file restore

    온라인 파일 복원의 경우 데이터베이스가 복원 시점에 온라인 상태이면 파일 복원 중에 온라인 상태로 유지됩니다.In an online file restore, if database is online at restore time, it remains online during the file restore. 그러나 파일을 복원할 각 파일 그룹은 복원 작업 중에 오프라인 상태입니다.However, each filegroup in which a file is being restored is offline during the restore operation. 오프라인 파일 그룹의 모든 파일이 복구되면 파일 그룹이 자동으로 온라인 상태가 됩니다.After all the files in an offline filegroup are recovered, the filegroup is automatically brought online.

    온라인 페이지 및 파일 복원 지원에 대한 자세한 내용은 SQL Server 2016의 버전과 지원하는 기능을 참조하세요.For information about support for online page and file restore, see Editions and Supported Features for SQL Server 2016. 온라인 복원에 대한 자세한 내용은 온라인 복원(SQL Server)을 참조하세요.For more information about online restores, see Online Restore (SQL Server).

    파일 복원을 위해 데이터베이스를 오프라인 상태로 전환하려면 ALTER DATABASE 문인 ALTER DATABASE database_name SET OFFLINE을 실행하여 복원 시퀀스를 시작하기 전에 데이터베이스를 오프라인으로 설정합니다.If you want the database to be offline for a file restore, take the database offline before you start the restore sequence by executing the following ALTER DATABASE statement: ALTER DATABASE database_name SET OFFLINE.

파일 백업에서 손상된 파일 복원Restoring Damaged Files from File Backups

  1. 하나 이상의 손상된 파일을 복원하려면 먼저 비상 로그 백업을 만듭니다.Before restoring one or more damaged files, attempt to create a tail-log backup.

    로그가 손상된 경우에는 비상 로그 백상을 만들 수 없으며 데이터베이스 전체를 복원해야 합니다.If the log has been damaged, a tail-log backup cannot be created, and you must restore the whole database.

    트랜잭션 로그를 백업하는 방법은 트랜잭션 로그 백업(SQL Server)을 참조하세요.For information about how to back up a transaction log, see Transaction Log Backups (SQL Server).

    중요

    오프라인 파일을 복원하려면 이 파일을 복원하기 전에 비상 로그 백업을 수행해야 합니다.For an offline file restore, you must always take a tail-log backup before the file restore. 온라인 파일을 복원하려면 이 파일을 복원한 후에 로그 백업을 수행해야 합니다.For an online file restore, you must always take the log backup after the file restore. 이러한 로그 백업은 파일을 데이터베이스의 나머지 부분과 일치하는 상태로 복구해야 하기 때문에 필요합니다.This log backup is necessary to allow for the file to be recovered to a state consistent with the rest of the database.

  2. 각 손상된 파일을 해당 파일의 최신 백업에서 복원합니다.Restore each damaged file from the most recent file backup of that file.

  3. 복원된 각 파일에 대한 가장 최근의 차등 파일 백업(있을 경우)을 복원합니다.Restore the most recent differential file backup, if any, for each restored file.

  4. 복원 파일 중 가장 오래된 것을 포함하는 백업부터 시작하여 1단계에서 만든 비상 로그 백업까지 트랜잭션 로그 백업을 순서대로 복원합니다.Restore transaction log backups in sequence, starting with the backup that covers the oldest of the restored files and ending with the tail-log backup created in step 1.

    파일 백업 후에는 생성된 트랜잭션 로그 백업을 복원하여 데이터베이스와 일치하는 상태로 만들어야 합니다.You must restore the transaction log backups that were created after the file backups to bring the database to a consistent state. 트랜잭션 로그 백업은 복원 파일에 적용된 변경 내용만 적용하므로 빨리 롤포워드할 수 있습니다.The transaction log backups can be rolled forward quickly, because only the changes that apply to the restored files are applied. 손상되지 않은 파일은 복사되지 않고 롤포워드되므로 개별 파일 복원이 전체 데이터베이스 복원보다 나을 수 있습니다.Restoring individual files can be better than restoring the whole database, because undamaged files are not copied and then rolled forward. 하지만 전체 로그 백업 체인은 읽기가 가능해야 합니다.However, the whole chain of log backups still has to be read.

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

참고

파일 백업은 지정 시간 이전의 시점으로 데이터베이스를 복원하는 데 사용될 수 있습니다.File backups can be used to restore the database to an earlier point in time. 이렇게 하려면 파일 백업의 전체 세트를 복원한 후 최근 복원된 파일 백업 다음에 있는 대상 지점에 이를 때까지 순서대로 트랜잭션 로그 백업을 복원해야 합니다.To do this, you must restore a complete set of file backups, and then restore transaction log backups in sequence to reach a target point that is after the end of the most recent restored file backup. 지정 시간 복구에 대한 자세한 내용은 SQL Server 데이터베이스를 지정 시간으로 복원(전체 복구 모델)을 참조하세요.For more information about point-in-time recovery, see Restore a SQL Server Database to a Point in Time (Full Recovery Model).

오프라인 파일 복원을 위한 Transact-SQL 복원 시퀀스(전체 복구 모델)Transact-SQL Restore Sequence for an Offline File Restore (Full Recovery Model)

파일 복원 시나리오는 해당 데이터를 복사하고 롤포워드하고 복구하는 단일 복원 시퀀스로 이루어집니다.A file restore scenario consists of a single restore sequence that copies, rolls forward, and recovers the appropriate data.

이 섹션에서는 파일 복원 시퀀스에 대한 필수 RESTORE 옵션을 보여 줍니다.This section shows the essential RESTORE options for a file-restore sequence. 이 용도와 관련 없는 구문 및 세부 사항은 생략됩니다.Syntax and details that are not relevant to this purpose are omitted.

다음 예에서는 WITH NORECOVERY를 사용하여 두 개의 보조 파일 AB를 오프라인 복원하는 경우를 보여 줍니다.The following sample restore sequence shows an offline restore of two secondary files, A and B, using WITH NORECOVERY. 그런 다음 두 개의 로그 백업에 NORECOVERY를 적용한 다음 WITH RECOVERY를 사용하여 복원되는 비상 로그 백업을 실행합니다.Next, two log backups are applied with NORECOVERY, followed with the tail-log backup, and this is restored using WITH RECOVERY.

참고

다음 예에서는 파일을 오프라인으로 전환하여 복원 시퀀스를 시작하고 비상 로그 백업을 만듭니다.The following sample restore sequence starts by taking the file offline and then creates a tail-log backup.

--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;  

Examples

관련 태스크Related Tasks

파일과 파일 그룹을 복원하려면To restore files and filegroups

참고 항목See Also

백업 및 복원: 상호 운용성 및 공존성(SQL Server) Backup and Restore: Interoperability and Coexistence (SQL Server)
차등 백업(SQL Server) Differential Backups (SQL Server)
전체 파일 백업(SQL Server) Full File Backups (SQL Server)
백업 개요(SQL Server) Backup Overview (SQL Server)
복원 및 복구 개요(SQL Server) Restore and Recovery Overview (SQL Server)
RESTORE(Transact-SQL) RESTORE (Transact-SQL)
전체 데이터베이스 복원(단순 복구 모델) Complete Database Restores (Simple Recovery Model)
증분 복원(SQL Server)Piecemeal Restores (SQL Server)