復元シーケンスの計画と実行 (完全復旧モデル)
このトピックでは、主に完全復旧モデルが使用される SQL Server データベースの復元シーケンスを計画し、実行する方法について説明します。 復元シーケンスは、1 つ以上の連続した RESTORE ステートメントです。 通常、復元シーケンスでは、復元対象のデータベース、ファイル、ページのコンテンツの初期化 (データ コピー フェーズ)、ログに記録されたトランザクションのロールフォワード (再実行フェーズ)、コミットされていないトランザクションのロールバック (元に戻すフェーズ) が実行されます。
単純な復元シーケンスの場合、必要なのはデータベースの完全バックアップ、差分バックアップ、およびそれ以降のログ バックアップのみです。 このような場合は、適切な復元シーケンスの構築は簡単です。 たとえば、障害が発生した時点までデータベース全体を復元するには、まずアクティブなトランザクション ログ (ログの末尾) をバックアップします。 次に、データベースの最新の完全バックアップ、最新の差分バックアップ (存在する場合) の順に復元してから、それ以降のすべてのログ バックアップを作成順に復元します。
適切な復元シーケンスの構築がもっと複雑になる場合もあります。 たとえば、複数のファイル バックアップが必要になったり、特定の時点へのデータの復元が必要になる場合があります。 非常に複雑な復元シーケンスでは、1 つ以上の復旧分岐にまたがる、分岐した復旧パスをたどることが必要になる場合もあります。
注 |
---|
復旧パスは、データベースをある特定の時点 (復旧ポイント) の状態にするための、連続したデータおよびログ バックアップです。 復旧パスは、データベースの一貫性を維持しつつ、その内容がどのような操作によって、時間の経過と共にどのように変化してきたかを具体的に表します。 開始ポイント (LSN、GUID) から終了ポイント (LSN、GUID) までの一連の LSN が 1 つの復旧パスとなります。 復旧パスの LSN は、開始ポイントから終了ポイントまですべてが 1 つの復旧ブランチに属する場合もあれば、複数の復旧ブランチに属する場合もあります。 |
復元シーケンスを計画するには
復元シーケンスを開始する前に、次の手順を実行します。
データベースのログ末尾のバックアップを (作成できる場合は) 作成します。 詳細については、「ログ末尾のバックアップ (SQL Server)」を参照してください。
目的の復旧ポイントを決定します。
目的の復旧ポイントとして、トランザクション ログ バックアップ内の任意の時点またはマークを選択することができます。 詳細については、「SQL Server データベースを特定の時点に復元する方法 (完全復旧モデル)」または「マークされたトランザクションを使用して関連するデータベースを一貫した状態に復元する方法 (完全復旧モデル)」を参照してください。
実行する復元の種類を決定します。 詳細については、「復元と復旧の概要 (SQL Server)」を参照してください。
必要なバックアップを特定し、必要なメディア セットとバックアップ デバイスが使用可能であることを確認します。 詳細については、「バックアップ デバイス (SQL Server)」および「メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。
復元シーケンスを実行するには
復元シーケンスを実行するには、次の手順を実行します。
シーケンスを開始するために、データベース バックアップ、部分バックアップ、1 つ以上のファイル バックアップなど、1 つ以上のデータ バックアップを復元します。
必要に応じて、これらの完全バックアップを基にした最新の差分バックアップを復元します。
復元する各完全バックアップがいずれかの差分バックアップのベースであるかどうかを確認します。 その場合は、最新の差分バックアップを (復元できる場合は) 復元します。 詳細については、「差分バックアップ (SQL Server)」を参照してください。
ログ バックアップを順番に復元することによって、データベースをロールフォワードします。最後に復旧ポイントを含むログ バックアップを復元します。 すべてのログ バックアップを適用する必要があるかどうかは、どのログ バックアップに目的の復旧ポイントが含まれているかによって、次のように異なります。
復旧ポイントが障害の発生時点である場合は、最後に復元したデータ バックアップ (完全バックアップまたは差分バックアップ) 以降に作成されたすべてのログ バックアップを復元する必要があります。 詳細については、「トランザクション ログ バックアップの適用 (SQL Server)」を参照してください。
特定の時点への復元の場合は、最新のログ バックアップを復元する必要がないことがあります。 SQL Server Management Studio を使用する場合、データベース復旧アドバイザーによって、指定された時点に復元するために必要なバックアップだけが選択されます。 これらのバックアップは、特定の時点への復元用として推奨される復元プランを示しています。 詳細については、「SQL Server データベースを特定の時点に復元する方法 (完全復旧モデル)」を参照してください。
復元シーケンスの再実行
復元シーケンスの結果に問題がある場合、復元シーケンスを停止し、最初から再実行することができます。 たとえば、誤ってログ バックアップを多く復元しすぎて、目的の復旧ポイントを超えてしまった場合は、目的の復旧ポイントを含むログ バックアップまでの復元シーケンスを再実行する必要があります。