증분 복원(SQL Server)Piecemeal Restores (SQL Server)

이 항목에서는 SQL ServerSQL Server 엔터프라이즈 버전의 데이터베이스에 여러 개의 파일 또는 파일 그룹이 있는 경우, 그리고 단순 모델에서 파일 그룹이 읽기 전용인 경우에 대해서만 다룹니다.This topic is relevant only for databases in the Enterprise edition of SQL ServerSQL Server that contain multiple files or filegroups; and, under the simple model, only for read-only filegroups.

증분 복원과 메모리 액세스에 최적화된 테이블에 대한 자세한 내용은 메모리 액세스에 최적화된 테이블이 있는 데이터베이스의 증분 복원을 참조하세요.For information about piecemeal restore and memory-optimized tables, see Piecemeal Restore of Databases With Memory-Optimized Tables.

증분 복원 을 사용하면 여러 파일 그룹을 포함하는 데이터베이스를 단계별로 복원 및 복구할 수 있습니다.Piecemeal restore allows databases that contain multiple filegroups to be restored and recovered in stages. 증분 복원에는 주 파일 그룹에서 시작하여 경우에 따라 하나 이상의 보조 파일 그룹까지 단계별로 복원하는 일련의 복원 순서가 포함됩니다.Piecemeal restore involves a series of restore sequences, starting with the primary filegroup and, in some cases, one or more secondary filegroups. 증분 복원에서는 데이터베이스가 최종적으로 일관성 있는 상태가 되도록 검사를 유지 관리합니다.Piecemeal restore maintains checks to ensure that the database will be consistent in the end. 복원 순서가 완료되었을 때 복구된 파일이 유효하고 데이터베이스와 일치하는 경우 이 파일을 즉시 온라인 상태로 만들 수 있습니다.After the restore sequence is completed, recovered files, if they are valid and consistent with the database, can be brought online directly.

증분 복원 작업은 모든 복구 모델에서 가능하지만 단순 모델보다는 전체 및 대량 로그 모델에 대해 더 융통성이 있습니다.Piecemeal restore works with all recovery models, but is more flexible for the full and bulk-logged models than for the simple model.

모든 증분 복원은 부분 복원 순서라는 초기 복원 순서로 시작됩니다.Every piecemeal restore starts with an initial restore sequence called the partial-restore sequence. 최소한 부분 복원 순서에서는 주 파일 그룹을 복원 및 복구하고 단순 복구 모델을 사용할 경우 모든 읽기/쓰기 파일 그룹을 복원 및 복구합니다.Minimally, the partial-restore sequence restores and recovers the primary filegroup and, under the simple recovery model, all read/write filegroups. 증분 복원 순서 중에 전체 데이터베이스는 오프라인 상태가 되어야 합니다.During the piecemeal-restore sequence, the whole database must go offline. 그 후에 데이터베이스가 온라인 상태가 되고 복원된 파일 그룹을 사용할 수 있습니다.Thereafter, the database is online and restored filegroups are available. 그러나 복원되지 않은 파일 그룹은 오프라인으로 유지되고 액세스할 수 없습니다.However, any unrestored filegroups remain offline and are not accessible. 나중에 파일 복원을 수행하여 오프라인 파일 그룹을 복원하고 온라인 상태로 만들 수 있습니다.Any offline filegroups, however, can be restored and brought online later by a file restore.

데이터베이스에서 사용하는 복구 모델에 관계없이 부분 복원 순서는 전체 백업을 복원하고 PARTIAL 옵션을 지정하는 RESTORE DATABASE 문으로 시작됩니다.Regardless of the recovery model that is used by the database, the partial-restore sequence starts with a RESTORE DATABASE statement that restores a full backup and specifies the PARTIAL option. PARTIAL 옵션은 항상 새로운 증분 복원을 시작하므로 부분 복원 순서의 맨 처음 문에서 한 번만 PARTIAL 옵션을 지정해야 합니다.The PARTIAL option always starts a new piecemeal restore; therefore, you must specify PARTIAL only one time in the initial statement of the partial-restore sequence. 부분 복원 순서가 완료되고 데이터베이스가 온라인 상태가 되면 파일의 복구가 연기되므로 나머지 파일은 "복구 보류" 상태가 됩니다.When the partial restore sequence finishes and the database is brought online, the state of the remaining files becomes "recovery pending" because their recovery has been postponed.

그 후 증분 복원은 일반적으로 하나 이상의 복원 순서를 포함하게 되며 이를 파일 그룹 복원 순서라고 합니다.Subsequently, a piecemeal restore typically includes one or more restore sequences, which are called filegroup-restore sequences. 특정 파일 그룹 복원 순서의 경우 원하는 기간 동안 수행을 대기할 수 있습니다.You can wait to perform a specific filegroup-restore sequence for as long as you want. 각 파일 그룹 복원 순서는 하나 이상의 오프라인 파일 그룹을 데이터베이스와 일치하는 지점으로 복원 및 복구합니다.Each filegroup-restore sequence restores and recovers one or more offline filegroups to a point consistent with the database. 파일 그룹 복원 순서의 타이밍과 개수는 복구 목표, 복원할 오프라인 파일 그룹 수 및 파일 그룹 복원 순서당 복원할 오프라인 파일 그룹 수에 따라 달라집니다.The timing and number of filegroup-restore sequences depends on your recovery goal, the number of offline filegroups you want to restore, and on how many of them you restore per filegroup-restore sequence.

증분 복원을 수행하기 위한 정확한 요구 사항은 데이터베이스의 복구 모델에 따라 달라집니다.The exact requirements for performing a piecemeal restore depend on the recovery model of the database. 자세한 내용은 이 항목의 뒷부분에 나오는 "단순 복구 모델에서의 증분 복원" 및 "전체 복구 모델에서의 증분 복원"을 참조하십시오.For more information, see "Piecemeal Restore Under the Simple Recovery Model" and "Piecemeal Restore Under the Full Recovery Model," later in this topic.

증분 복원 시나리오Piecemeal Restore Scenarios

모든 버전의 SQL ServerSQL Server 는 오프라인 증분 복원을 지원합니다.All editions of SQL ServerSQL Server support offline piecemeal restores. 엔터프라이즈 버전에서는 온라인 또는 오프라인 상태에서 증분 복원을 수행할 수 있습니다.In the Enterprise edition, a piecemeal restore can be either online or offline. 오프라인 및 온라인 증분 복원의 의미는 다음과 같습니다.The implications of offline and online piecemeal restores are as follows:

  • 오프라인 증분 복원 시나리오Offline piecemeal restore scenario

    오프라인 증분 복원 시 데이터베이스는 부분 복원 순서 후에 온라인 상태가 됩니다.In an offline piecemeal restore, the database is online after the partial-restore sequence. 복원되지 않은 파일 그룹은 오프라인 상태로 남지만 필요한 경우 데이터베이스를 오프라인 상태로 만든 후 해당 파일 그룹을 복원할 수 있습니다.Filegroups that have not yet been restored remain offline, but they can be restored as you need them after taking the database offline.

  • 온라인 증분 복원 시나리오Online piecemeal restore scenario

    온라인 증분 복원 시에는 부분 복원 순서 후 데이터베이스가 온라인 상태가 되고 주 파일 그룹과 복구된 모든 보조 파일 그룹을 사용할 수 있습니다.In an online piecemeal restore, after the partial-restore sequence, the database is online, and the primary filegroup and any recovered secondary filegroups are available. 복원되지 않은 파일 그룹은 오프라인 상태로 남지만 필요한 경우 데이터베이스를 온라인으로 유지한 상태에서 해당 파일을 복원할 수 있습니다.Filegroups that have not yet been restored remain offline, but they can be restored as needed while the database remains online.

    온라인 증분 복원에는 지연된 트랜잭션이 사용될 수 있습니다.Online piecemeal restores can involve deferred transactions. 파일 그룹의 하위 집합만 복원된 경우 온라인 파일 그룹에 종속된 데이터베이스의 트랜잭션이 지연될 수 있습니다.When only a subset of filegroups has been restored, transactions in the database that depend on online filegroups might become deferred. 이것은 전체 데이터베이스가 일치해야 하므로 정상적인 현상입니다.This is typical, because the whole database must be consistent. 자세한 내용은 지연된 트랜잭션(SQL Server)에서 존재하지 않는 파일 그룹을 제거하는 방법에 대해 설명합니다.For more information, see Deferred Transactions (SQL Server).

  • SQL Server 메모리 내 OLTPSQL Server In-Memory OLTP 증분 복원 시나리오 piecemeal restore scenario

    메모리 내 OLTP 데이터베이스의 증분 복원에 대한 자세한 내용은 메모리 액세스에 최적화된 테이블이 포함된 데이터베이스의 증분 백업 및 복원을 참조하세요.For information on Piecemeal Restores of In-Memory OLTP databases see Piecemeal Backup and Restore of Databases With Memory-Optimized Tables.

제한 사항Restrictions

부분 복원 순서에서 FILESTREAM 파일 그룹이 제외될 경우 지정 시간 복원은 지원되지 않습니다.If a partial restore sequence excludes any FILESTREAM filegroup, point-in-time restore is not supported. 복원 순서를 강제로 계속할 수 있지만You can force the restore sequence to continue. RESTORE 문에서 누락된 FILESTREAM 파일 그룹은 복원되지 않습니다.However the FILESTREAM filegroups that are omitted from your RESTORE statement can never be restored. 지정 시간 복원을 강제로 수행하려면 후속 RESTORE LOG 문에도 지정해야 하는 STOPAT, STOPATMARK 또는 STOPBEFOREMARK 옵션과 함께 CONTINUE_AFTER_ERROR 옵션을 지정합니다.To force a point-in-time restore, specify the CONTINUE_AFTER_ERROR option together with the STOPAT, STOPATMARK, or STOPBEFOREMARK option, which you must also specify in your subsequent RESTORE LOG statements. CONTINUE_AFTER_ERROR를 지정하면 부분 복원 순서가 성공하고 FILESTREAM 파일 그룹이 복구 불가능한 상태가 됩니다.If you specify CONTINUE_AFTER_ERROR, the partial restore sequence succeeds and the FILESTREAM filegroup becomes unrecoverable.

단순 복구 모델에서의 증분 복원Piecemeal Restore Under the Simple Recovery Model

단순 복구 모델에서 증분 복원 순서는 전체 데이터베이스 백업 또는 부분 백업으로 시작해야 합니다.Under the simple recovery model, the piecemeal restore sequence must start with a full database or partial backup. 그런 다음 복원된 백업이 차등 기반일 경우 최근의 차등 백업을 복원합니다.Then, if the restored backup is a differential base, restore the latest differential backup next.

첫 번째 부분 복원 순서 중에 읽기/쓰기 파일 그룹의 하위 집합만 복원할 경우 복원되지 않은 파일 그룹은 부분 복원된 데이터베이스를 복구할 때 존재하지 않는 상태가 됩니다.During the first partial restore sequence, if you restore only a subset of read/write filegroups, any unrestored filegroups become defunct when you recover the partially restored database. 다음과 같은 경우에만 부분 복원 순서에서 읽기/쓰기 파일 그룹을 제외할 수 있습니다.Omitting a read/write filegroup from the partial-restore sequence is appropriate only in the following cases:

  • 복원되지 않은 파일 그룹을 존재하지 않는 상태로 만들려는 경우You intend for the unrestored filegroups to become defunct.

  • 부분 복원 순서의 이전 복원 중에 복원되지 않은 각 파일 그룹이 읽기 전용, 삭제 또는 존재하지 않게 된 복구 지점에 복원 순서가 도달하는 경우The restore sequence will arrive at a recovery point at which each unrestored filegroup has become read-only, dropped, or defunct (during a previous restore in the partial-restore sequence).

  • 데이터베이스가 단순 복구 모델을 사용하는 동안 전체 백업이 수행되었으나 복구 지점은 데이터베이스가 전체 복구 모델을 사용 중인 시점에 있는 경우.The full backup was taken while the database was using the simple recovery model, but the recovery point is at a time when the database is using the full recovery model. 자세한 내용은 이 항목의 뒷부분에 있는 "단순 복구 모델에서 전체 복구 모델로 전환된 데이터베이스의 증분 복원 수행"을 참조하십시오.For more information, see "Performing a Piecemeal Restore of a Database Whose Recovery Model Has Been Switched from Simple to Full," later in this topic.

단순 복구 모델에서의 증분 복원에 대한 요구 사항Requirements for Piecemeal Restore Under the Simple Recovery Model

단순 복구 모델에서 초기 단계는 주 파일 그룹과 모든 읽기/쓰기 보조 파일 그룹을 복원 및 복구합니다.Under the simple recovery model, the initial stage restores and recovers the primary filegroup and all read/write secondary filegroups. 초기 단계가 완료되었을 때 복구된 파일이 유효하고 데이터베이스와 일치하는 경우 이 파일을 온라인 상태로 직접 연결할 수 있습니다.After the initial stage is completed, recovered files, if they are valid and consistent with the database, can be brought online directly.

그 후에 하나 이상의 추가 단계로 읽기 전용 파일 그룹을 복원할 수 있습니다.Thereafter, read-only filegroups can be restored in one or more additional stages.

증분 복원은 다음 조건을 만족하는 경우 읽기 전용 보조 파일 그룹에 대해 사용할 수 있습니다.Piecemeal restore is available for a read-only secondary filegroup only if the following are true:

  • 백업 시 읽기 전용이었던 파일 그룹Was read-only when backed up.

  • 읽기 전용으로 남아 있는 파일 그룹(논리적으로 주 파일 그룹과 일관성 유지)Has remained read-only (keeping it logically consistent with the primary filegroup).

    증분 복원을 수행하려면 다음 지침을 따라야 합니다.To perform a piecemeal restore, the following guidelines must be followed:

  • 단순 복구 모델 데이터베이스의 증분 복원을 위한 전체 백업 세트에 다음이 포함되어야 합니다.A complete set of backups for the piecemeal restore of a simple recovery model database must contain the following:

    • 주 파일 그룹과 백업 당시 읽기/쓰기 상태였던 모든 파일 그룹을 포함하는 부분 또는 전체 데이터베이스 백업A partial or full database backup that contains the primary filegroup and all filegroups that were read/write at the time of the backup.

    • 각 읽기 전용 파일의 백업A backup of each read-only file.

  • 읽기 전용 파일의 백업이 주 파일 그룹의 백업과 일치하려면 보조 파일 그룹은 백업된 당시부터 주 파일 그룹을 포함하는 백업이 완료될 때까지 읽기 전용 상태여야 합니다.For the backup of a read-only file to be consistent with the primary filegroup, the secondary filegroup must have been read-only from when it was backed up until the backup that contains the primary filegroup was completed. 파일 그룹이 읽기 전용 상태가 된 후 차등 파일 백업을 가져온 경우 차등 파일 백업을 사용할 수 있습니다.You can use differential file backups, if they were taken after the filegroup became read-only.

증분 복원 단계(단순 복구 모델)Piecemeal Restore Stages (Simple Recovery Model)

증분 복원 시나리오에는 다음 단계가 포함됩니다.The piecemeal restore scenario involves the following stages:

  • 초기 단계(주 파일 그룹과 모든 읽기/쓰기 파일 그룹 복원 및 복구)Initial stage (restore and recover the primary filegroup and all read/write filegroups)

    초기 상태에서는 부분 복원을 수행합니다.The initial stage performs a partial restore. 부분 복원 순서에서는 주 파일 그룹과 모든 읽기/쓰기 보조 파일 그룹을 복원하고 선택적으로 읽기 전용 파일 그룹의 일부를 복원합니다.The partial restore sequence restores the primary filegroup, all read/write secondary filegroups, and (optionally) some of the read-only filegroups. 초기 단계에서 전체 데이터베이스는 오프라인 상태가 되어야 합니다.During the initial stage, the whole database must go offline. 초기 단계 후에 데이터베이스가 온라인 상태가 되고 복원된 파일 그룹을 사용할 수 있습니다.After the initial stage, the database is online, and restored filegroups are available. 하지만 복원되지 않은 모든 읽기 전용 파일 그룹은 오프라인 상태를 유지합니다.However, any read-only filegroups that have not yet been restored, remain offline.

    초기 단계에서 첫 번째 RESTORE 문은 다음을 수행해야 합니다.The first RESTORE statement in the initial stage must do the following:

    • 주 파일 그룹과 백업 당시 읽기/쓰기 상태였던 모든 파일 그룹을 포함하는 부분 또는 전체 데이터베이스 백업을 사용합니다.Use a partial or full database backup that contains the primary filegroup and all filegroups that were read/write at the time of the backup. 일반적으로 부분 복원 순서는 부분 백업을 복원하여 시작합니다.It is common to start a partial restore sequence by restoring a partial backup.

    • 증분 복원의 시작을 나타내는 PARTIAL 옵션을 지정합니다.Specify the PARTIAL option, which indicates the start of a piecemeal restore.

    참고

    PARTIAL 옵션은 보안 검사를 수행하므로 결과 데이터베이스를 프로덕션 데이터베이스로 사용할 수 있습니다.The PARTIAL option performs safety checks that ensure that the resulting database is suited for use as a production database.

    • 백업이 전체 데이터베이스 백업인 경우 READ_WRITE_FILEGROUPS 옵션을 지정합니다.Specify the READ_WRITE_FILEGROUPS option if the backup is a full database backup.
  • 데이터베이스가 온라인 상태이면 하나 이상의 온라인 파일 복원을 사용하여 백업 당시 읽기 전용이었던 오프라인 읽기 전용 파일을 복원 및 복구할 수 있습니다.While the database is online, you can use one or more online file restores to restore and recover offline read-only files that were read-only at the time of backup. 온라인 파일 복원의 타이밍은 데이터가 온라인 상태가 되어야 하는 시기에 따라 달라집니다.The timing of the online file restores depends on when you want to have the data online.

    데이터를 파일로 복원해야 하는지 여부는 다음에 따라 달라집니다.Whether you must restore data to a file depends on the following:

    • 데이터베이스와 일치하는 유효한 읽기 전용 파일은 데이터를 복원하지 않고 복구하여 즉시 온라인 상태로 만들 수 있습니다.Valid read-only files that are consistent with the database can be brought online directly by recovering them without restoring any data.

    • 손상되거나 데이터베이스와 일치하지 않는 파일은 복구하기 전에 복원해야 합니다.Files that are damaged or inconsistent with the database must be restored before they are recovered.

Examples

전체 복구 모델에서의 증분 복원Piecemeal Restore Under the Full Recovery Model

전체 복구 모델 또는 대량 로그 복구 모델에서는 여러 파일 그룹이 있는 모든 데이터베이스에 대해 증분 복원을 사용하여 해당 데이터베이스를 임의의 시점으로 복원할 수 있습니다.Under the full recovery model or bulk-logged recovery model, piecemeal restore is available for any database that contains multiple filegroups and you can restore a database to any point in time. 증분 복원의 복원 순서는 다음과 같이 동작합니다.The restore sequences of a piecemeal restore behave as follows:

  • 부분 복원 순서Partial-restore sequence

    부분 복원 순서에서는 주 파일 그룹과 필요할 경우 보조 파일 그룹을 일부 복원합니다.The partial restore sequence restores the primary filegroup and, optionally, some of the secondary filegroups.

    첫 번째 RESTORE DATABASE 문은 다음을 수행해야 합니다.The first RESTORE DATABASE statement must do the following:

    • PARTIAL 옵션을 지정합니다.Specify the PARTIAL option. 이는 증분 복원의 시작을 나타냅니다.This indicates the start of a piecemeal restore.

    • 주 파일 그룹을 포함하는 전체 데이터베이스 백업을 사용합니다.Use any full database backup that contains the primary filegroup. 일반적으로 부분 복원 순서는 부분 백업을 복원하여 시작합니다.The common practice is to start a partial restore sequence by restoring a partial backup.

    • 특정 시점으로 복원하려면 부분 복원 순서에서 시간을 지정해야 하며To restore to a specific point in time, you must specify the time in the partial restore sequence. 복원 순서의 모든 연속 단계에서 동일한 시간을 지정해야 합니다.Every successive step of the restore sequence must specify the same point in time.

  • 파일 그룹 복원 순서는 추가 파일 그룹을 데이터베이스와 일치하는 온라인 시점으로 가져옵니다.Filegroup-restore sequences bring additional filegroups online to a point consistent with the database.

    엔터프라이즈 버전에서 데이터베이스가 온라인 상태인 동안에는 오프라인 보조 파일 그룹을 복원 및 복구할 수 있습니다.In the Enterprise edition, any offline secondary filegroup can be restored and recovered while the database remains online. 특정 읽기 전용 파일이 손상되지 않았고 데이터베이스와 일치하면 해당 파일을 복원할 필요가 없습니다.If a specific read-only file is undamaged and consistent with the database, the file does not have to be restored. 자세한 내용은 데이터를 복원하지 않고 데이터베이스 복구(Transact-SQL)를 참조하세요.For more information, see Recover a Database Without Restoring Data (Transact-SQL).

로그 백업 적용Applying Log Backups

파일 백업이 생성되기 이전부터 읽기 전용 파일 그룹이 읽기 전용이었으면 로그 백업을 파일 그룹에 적용할 필요가 없으며 파일 복원 시 이 작업은 생략됩니다.If a read-only filegroup has been read-only since before the file backup was created, applying log backups to the filegroup is unnecessary and is skipped by file restore. 읽기/쓰기가 가능한 파일 그룹의 경우 파일 그룹을 현재 로그 파일로 전달하려면 손상되지 않은 로그 백업 체인을 마지막 전체 복원 또는 차등 복원에 적용해야 합니다.If the filegroup is read/write, an unbroken chain of log backups must be applied to the last full or differential restore to bring the filegroup forward to the current log file.

Examples

단순 복구 모델에서 전체 복구 모델로 전환된 데이터베이스의 증분 복원 수행Performing a Piecemeal Restore of a Database Whose Recovery Model Has Been Switched from Simple to Full

전체 또는 부분 데이터베이스 백업 이후 단순 복구 모델에서 전체 복구 모델로 전환된 데이터베이스의 증분 복원을 수행할 수 있습니다.You can perform a piecemeal restore of a database that has been switched from the simple recovery model to the full recovery model since the full partial or database backup. 예를 들어 다음 단계를 수행할 데이터베이스가 있다고 가정합니다.For example, consider a database for which you take the following steps:

  1. 단순 모델 데이터베이스의 부분 백업(backup_1)을 만듭니다.Create a partial backup (backup_1) of a simple-model database.

  2. 조만간 복구 모델을 전체 모델로 변경합니다.After some time, change the recovery model to full.

  3. 차등 백업을 만듭니다.Create a differential backup.

  4. 로그 백업을 시작합니다.Start taking log backups.

    이제 다음 순서를 수행할 수 있습니다.Thereafter, the following sequence is valid:

  5. 일부 보조 파일 그룹을 생략한 부분 복원A partial restore that omits some secondary filegroups.

  6. 다른 필수 복원 후 이어지는 차등 복원A differential restore followed by any other needed restores.

  7. 나중에 backup_1 부분 백업에서 읽기/쓰기 보조 파일 그룹의 파일을 WITH NORECOVERY 옵션을 사용하여 복원Later, a file restore of a read/write secondary filegroup WITH NORECOVERY from the backup_1 partial backup

  8. 데이터를 원래 복구 지점으로 복원하기 위한 원래 증분 복원으로 다른 모든 백업이 복원된 후 이어지는 차등 백업The differential backup followed by any other backups that were restored in the original piecemeal restore sequence to restore the data up to the original recovery point.

참고 항목See Also

트랜잭션 로그 백업 적용(SQL Server) Apply Transaction Log Backups (SQL Server)
RESTORE(Transact-SQL) RESTORE (Transact-SQL)
SQL Server 데이터베이스를 지정 시간으로 복원(전체 복구 모델) Restore a SQL Server Database to a Point in Time (Full Recovery Model)
복원 및 복구 개요(SQL Server) Restore and Recovery Overview (SQL Server)
복원 시퀀스 계획 및 수행(전체 복구 모델) Plan and Perform Restore Sequences (Full Recovery Model)