次の方法で共有


ファイルの復元 (完全復旧モデル)

このトピックは、完全復旧モデルまたは一括読み込み復旧モデルの複数のファイルまたはファイル グループを含むデータベースにのみ関連します。

ファイルの復元では、データベース全体を復元せずに、1 つ以上の破損したファイルを復元することが目標です。 ファイル復元シナリオは、適切なデータをコピー、ロールフォワード、および回復する単一の復元シーケンスで構成されます

復元中のファイル グループが読み取り/書き込みである場合は、最後のデータまたは差分バックアップの復元後に、切り分けのないログ バックアップ チェーンを適用する必要があります。 これにより、ファイル グループは、ログ ファイル内の現在のアクティブなログ レコードのログ レコードに転送されます。 通常、復旧ポイントはログの末尾に近いですが、必ずしもそこにあるとは限りません。

復元中のファイル グループが読み取り専用の場合、通常、ログ バックアップの適用は不要であり、スキップされます。 ファイルが読み取り専用になった後にバックアップが作成された場合、これは復元する最後のバックアップです。 ロールフォワードは、ターゲット ポイントで停止します。

ファイル復元のシナリオは次のとおりです。

  • オフライン ファイルの復元

    オフライン ファイルの復元では、破損したファイルまたはファイル グループが復元されている間、データベースはオフラインになります。 復元シーケンスの最後に、データベースがオンラインになります。

    SQL Server 2014 のすべてのエディションでは、オフライン ファイルの復元がサポートされています。

  • オンライン ファイルの復元

    オンライン ファイルの復元では、データベースが復元時にオンラインの場合、ファイルの復元中もオンラインのままです。 ただし、復元操作中、ファイルを復元する各ファイル グループはオフラインになります。 オフライン ファイル グループ内のすべてのファイルが復旧されると、ファイル グループは自動的にオンラインになります。

    オンライン ページとファイルの復元のサポートについては、「 SQL Server 2014 の各エディションでサポートされる機能」を参照してください。 オンライン復元の詳細については、「 オンライン復元 (SQL Server)」を参照してください。

    ヒント

    ファイル復元のためにデータベースをオフラインにする場合は、ALTER DATABASE ステートメント ALTER DATABASE database_name SET OFFLINE を実行して、復元シーケンスを開始する前にデータベース オフラインにします。

ファイルバックアップから破損したファイルを復元する

  1. 1 つ以上の破損したファイルを復元する前に、 ログ末尾のバックアップの作成を試みます。

    ログが破損している場合は、ログ末尾のバックアップを作成できないため、データベース全体を復元する必要があります。

    トランザクション ログをバックアップする方法については、「トランザクション ログバックアップ (SQL Server)」を参照してください。

    重要

    オフライン ファイル復元の場合は、ファイルの復元前にログ末尾のバックアップを常に実行する必要があります。 オンライン ファイル復元の場合は、ファイルの復元後にログ バックアップを常に実行する必要があります。 このログ バックアップは、ファイルをデータベースの残りの部分と一致する状態に回復できるようにするために必要です。

  2. 破損した各ファイルを、そのファイルの最新のファイル バックアップから復元します。

  3. 復元された各ファイルについて、最新の差分ファイル バックアップ (存在する場合) を復元します。

  4. 復元されたファイルの最も古いバックアップから始まり、手順 1 で作成したログ末尾のバックアップで終わる、トランザクション ログ バックアップを順番に復元します。

    データベースを一貫した状態にするには、ファイル バックアップの後に作成されたトランザクション ログ バックアップを復元する必要があります。 復元されたファイルに適用される変更のみが適用されるため、トランザクション ログ バックアップは迅速にロールフォワードできます。 破損していないファイルはコピーされてロールフォワードされないため、個々のファイルの復元はデータベース全体を復元するよりも優れている可能性があります。 ただし、ログ バックアップのチェーン全体を読み取る必要があります。

  5. データベースを復旧します。

ファイル バックアップを使用して、データベースを以前の時点に復元できます。 これを行うには、ファイル バックアップの完全なセットを復元し、最新の復元されたファイル バックアップの終了後のターゲット ポイントに到達するように、トランザクション ログ バックアップを順番に復元する必要があります。 特定の時点への復旧の詳細については、「特定の時点 への SQL Server データベースの復元 (完全復旧モデル)」を参照してください。

オフライン ファイル復元の Transact-SQL 復元シーケンス (完全復旧モデル)

ファイル復元シナリオは、適切なデータをコピー、ロールフォワード、および回復する単一の復元シーケンスで構成されます。

このセクションでは、ファイル 復元 シーケンスの基本的な RESTORE オプションを示します。 この目的に関連しない構文と詳細は省略されます。

次の復元シーケンス例は、WITH NORECOVERY を使用した 2 つのセカンダリ ファイル ( AB) のオフライン復元を示しています。 次に、NORECOVERY で 2 つのログ バックアップが適用され、ログ末尾のバックアップが適用され、WITH RECOVERY を使用して復元されます。

次の復元シーケンスの例では、まずファイルをオフラインにしてからログ末尾のバックアップを作成します。

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

例示

関連タスク

ファイルとファイル グループを復元するには

こちらもご覧ください

バックアップと復元: 相互運用性と共存 (SQL Server)
差分バックアップ (SQL Server)
完全ファイル バックアップ (SQL Server)
バックアップの概要 (SQL Server)
復元と復旧の概要 (SQL Server)
RESTORE (Transact-SQL)
データベースの完全な復元 (単純復旧モデル)
段階的な部分復元 (SQL Server)