例:データベースの部分復元 (完全復旧モデル)
段階的な部分復元シーケンスでは、プライマリ ファイル グループとすべての読み書き可能なセカンダリ ファイル グループから順に、ファイル グループ レベルで段階的にデータベースが復元され、復旧されます。
この例では、障害発生後、データベース adb
を新しいコンピューターに復元します。 データベースでは完全復旧モデルを使用しているため、復元を開始する前に、データベースのログ末尾のバックアップを作成する必要があります。 障害が発生する前は、すべてのファイル グループがオンラインです。 ファイル グループ B
は読み取り専用です。 すべてのセカンダリ ファイル グループを復元する必要があります。ただし、これらのファイル グループは、重要度に従って A
、 C
、 B
の順に復元します (重要度が最も高いのは A です)。 この例では、ログ末尾のバックアップを含めて、4 つのログ バックアップがあるとします。
ログ末尾のバックアップ
データベースの管理者は、データベースを復元する前に、ログの末尾をバックアップする必要があります。 データベースが破損しているため、ログ末尾のバックアップを作成するには、NO_TRUNCATE オプションを使用する必要があります。
BACKUP LOG adb TO tailLogBackup WITH NORECOVERY, NO_TRUNCATE
ログ末尾のバックアップは、次の復元シーケンスの最後に適用されます。
復元シーケンス
注意
オンライン復元シーケンスでは、オフライン復元シーケンスと同じ構文を使用します。
プライマリおよびセカンダリ ファイル グループ
A
の部分復元を行います。RESTORE DATABASE adb FILEGROUP='Primary' FROM backup1 WITH PARTIAL, NORECOVERY RESTORE DATABASE adb FILEGROUP='A' FROM backup2 WITH NORECOVERY RESTORE LOG adb FROM backup3 WITH NORECOVERY RESTORE LOG adb FROM backup4 WITH NORECOVERY RESTORE LOG adb FROM backup5 WITH NORECOVERY RESTORE LOG adb FROM tailLogBackup WITH RECOVERY
ファイル グループ
C
をオンライン復元します。この時点で、プライマリ ファイル グループとセカンダリ ファイル グループ
A
はオンラインです。 ファイル グループB
とファイル グループC
のすべてのファイルは復旧が保留されており、ファイル グループはオフラインです。最後の
RESTORE LOG
ステートメント (手順 1.) からのメッセージでは、ファイル グループC
が使用できないため、このファイル グループを含むトランザクションのロールバックに遅延が生じたことが示されています。 通常の操作は続行できますが、これらのトランザクションによってロックが保持され、ロールバックが完了するまで、ログの切り捨てが行われません。2 番目の復元シーケンスでは、データベース管理者がファイル グループ
C
を復元します。RESTORE DATABASE adb FILEGROUP='C' FROM backup2a WITH NORECOVERY RESTORE LOG adb FROM backup3 WITH NORECOVERY RESTORE LOG adb FROM backup4 WITH NORECOVERY RESTORE LOG adb FROM backup5 WITH NORECOVERY RESTORE LOG adb FROM tailLogBackup WITH RECOVERY
この時点で、プライマリ ファイル グループ、ファイル グループ
A
、およびファイル グループC
はオンラインです。 ファイル グループB
はオフラインで、このファイル グループのファイルは復旧待ち状態のままです。 遅延トランザクションは解決され、ログの切り捨てが行われます。ファイル グループ
B
をオンライン復元します。3 番目の復元シーケンスでは、データベース管理者がファイル グループ
B
を復元します。 ファイル グループB
のバックアップは、ファイル グループ B が読み取り専用になってから行います。このため、復旧中にこのファイル グループをロールフォワードする必要はありません。RESTORE DATABASE adb FILEGROUP='B' FROM backup2b WITH RECOVERY
すべてのファイル グループがオンラインになります。
その他の例
参照
BACKUP (Transact-SQL)
オンライン復元 (SQL Server)
トランザクション ログ バックアップの適用 (SQL Server)
RESTORE (Transact-SQL)
段階的な部分復元 (SQL Server)