段階的な部分復元 (SQL Server)Piecemeal Restores (SQL Server)

適用対象: はいSQL Server いいえAzure SQL Database いいえAzure Synapse Analytics (SQL DW) いいえParallel Data Warehouse APPLIES TO: YesSQL Server NoAzure SQL Database NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

このトピックの内容は、複数のファイルまたはファイル グループ (単純復旧モデルでは、読み取り専用ファイル グループのみ) を含む SQL ServerSQL Server の Enterprise エディション (オンライン復元) または Standard エディション (オフライン復元) のデータベースだけに関するものです。This topic is relevant for databases in the Enterprise edition of SQL ServerSQL Server (online restore) or Standard edition (offline restore) 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. 段階的な部分復元には、プライマリ ファイル グループから始まり、場合によっては 1 つ以上のセカンダリ ファイル グループを復元するための、一連の復元シーケンスが含まれています。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.

データベースに使用されている復旧モデルにかかわらず、部分復元シーケンスは、完全バックアップを復元する RESTORE DATABASE ステートメントと PARTIAL オプションから始まります。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 オプションは部分復元シーケンスの最初のステートメントに 1 回だけ指定します。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.

段階的な部分復元のこの後の部分には、通常、 ファイル グループ復元シーケンスと呼ばれる 1 つ以上の復元シーケンスがあります。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. 各ファイル グループ復元シーケンスでは、1 つ以上のオフラインのファイル グループを、データベースの一貫性がある時点に復元および復旧します。Each filegroup-restore sequence restores and recovers one or more offline filegroups to a point consistent with the database. ファイル グループ復元シーケンスのタイミングと数は、復旧の目的、つまり復旧するオフライン ファイル グループの数、および 1 回のファイル グループ復元シーケンスで復元するファイル グループの数によって異なります。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. Enterprise エディションでは、段階的な部分復元をオンラインでもオフラインでも実行できます。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. 特定の時点への復元を強制的に実行するには、STOPAT、STOPATMARK、または STOPBEFOREMARK オプションに CONTINUE_AFTER_ERROR オプションを組み合わせて指定します。これらのオプションは、後続の RESTORE LOG ステートメントでも指定する必要があります。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.

その後、読み取り専用のファイル グループが 1 回以上の追加段階で復元されます。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.
  • データベースがオンラインの間、1 つ以上のオンライン ファイルの復元を使用して、バックアップ時点で読み取り専用であったオフラインの読み取り専用ファイルを復元および復旧できます。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.

    Enterprise エディションでは、データベースをオンラインにしたまま、オフラインのセカンダリ ファイル グループを復元および復旧できます。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. 復旧プロセスの詳細については、「復元と復旧の概要 (SQL Server)」を参照してください。For more information about the recovery process, see Restore and Recovery Overview (SQL Server).

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:

  1. 部分復元で一部のセカンダリ ファイル グループを省略する。A partial restore that omits some secondary filegroups.

  2. 差分復元の後、その他の必要な復元を行う。A differential restore followed by any other needed restores.

  3. 後で、WITH NORECOVERY を指定して backup_1 部分バックアップから読み取り/書き込みセカンダリ ファイル グループを復元する。Later, a file restore of a read/write secondary filegroup WITH NORECOVERY from the backup_1 partial backup

  4. 差分バックアップの後、元の段階的な部分復元でその他の復元を実行して、元の復旧ポイントまでデータを復元する。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)
復元と復旧の概要 (SQL Server)Restore and Recovery Overview (SQL Server)