次の方法で共有


例: データベースの段階的な部分復元 (完全復旧モデル)

部分復元シーケンスは、プライマリ ファイル グループとすべての読み取り/書き込みセカンダリ ファイル グループから始まる、ファイル グループ レベルで段階的にデータベースを復元および復旧します。

この例では、データベース adb は、障害発生後に新しいコンピューターに復元されます。 データベースは完全復旧モデルを使用しています。そのため、復元を開始する前に、データベースのログ末尾のバックアップを作成する必要があります。 障害が発生する前に、すべてのファイル グループがオンラインになります。 ファイル グループ B は読み取り専用です。 セカンダリ ファイル グループはすべて復元する必要がありますが、 A (最高)、 C、最後に Bの順に復元されます。 この例では、ログ末尾のバックアップを含む 4 つのログ バックアップがあります。

Tail-Log バックアップ

データベースを復元する前に、データベース管理者はログの末尾をバックアップする必要があります。 データベースが破損しているため、ログ末尾のバックアップを作成するには、NO_TRUNCATE オプションを使用する必要があります。

BACKUP LOG adb TO tailLogBackup WITH NORECOVERY, NO_TRUNCATE  

ログ末尾のバックアップは、次の復元シーケンスで適用される最後のバックアップです。

復元シーケンス

オンライン復元シーケンスの構文は、オフライン復元シーケンスの構文と同じです。

  1. プライマリ ファイル グループとセカンダリ ファイル グループ 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  
    
  2. ファイル グループ Cのオンライン復元。

    この時点で、プライマリ ファイル グループとセカンダリ ファイル グループ A はオンラインになります。 ファイル グループ B および C 内のすべてのファイルは復旧が保留中であり、ファイル グループはオフラインです。

    手順 1 の最後の RESTORE LOG ステートメントからのメッセージは、このファイル グループが使用できないため、ファイル グループ 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  
    

    この時点で、プライマリ グループとファイル グループ AC はオンラインになります。 ファイル グループ内のファイル B 回復が保留中のままであり、ファイル グループはオフラインのままです。 遅延トランザクションが解決され、ログの切り捨てが行われます。

  3. ファイル グループ Bのオンライン復元。

    3 番目の復元シーケンスでは、データベース管理者はファイル グループ Bを復元します。 ファイル グループ B のバックアップは、ファイル グループが読み取り専用になった後に作成されたため、復旧中にロールフォワードする必要はありません。

    RESTORE DATABASE adb FILEGROUP='B' FROM backup2b WITH RECOVERY  
    

    すべてのファイル グループがオンラインになりました。

その他の例

こちらもご覧ください

BACKUP (Transact-SQL)
オンライン復元 (SQL Server)
トランザクション ログ バックアップの適用 (SQL Server)
RESTORE (Transact-SQL)
段階的な部分復元 (SQL Server)