リストアとは、バックアップからデータをコピーし、トランザクション・ログをデータに適用して、目的とするリカバリ時点の状態にロール・フォワードするプロセスです。バックアップには、各バックアップのリストア中にアクティブなトランザクションをロール・フォワードするために十分なトランザクション・ログの記録が保持されます。また、各バックアップには、コミットされていないトランザクションをロールバックし、データベースを整合性のある、使用可能な状態にするために十分なトランザクション・ログも保持されます。コミットされていないトランザクションをロールバックし、データベースをオンラインにするプロセスはリカバリと呼ばれます。
• |
• |
フル・ファイルおよびファイルグループ(Windowsのみ) |
• |
差分ファイルおよびファイルグループ(Windowsのみ) |
• |
部分データベース(Windowsのみ) |
• |
差分部分データベース(Windowsのみ) |
再実行とは、ログに記録された変更をロールフォワード・セットのデータに再適用して、データを特定時点の状態に進めるプロセスです。SQL Serverデータベース・エンジンは、トランザクション・ログのバックアップのリストア時に、このトランザクション・ログのバックアップを処理して再実行を行います。SQL Serverデータベース・エンジンは、上記のトピックのデータ・コピー・バックアップに含まれるログおよび、後でリストアされる増分トランザクション・ログのバックアップから開始します。ロール・フォワードは、リカバリ時点、つまり、ログの最後か、SQL Serverのリストア・オプションで増分トランザクション・ログのバックアップに対して指定された特定時点で停止します。Plug‑in for SQL Serverは、時間およびマーク付きトランザクションに基づくPITリカバリをサポートしています。
リカバリ・プロセスの開始時にデータのトランザクションの整合性が保たれている場合、元に戻す手順はスキップされます。
データベースでトランザクションの整合性が確保されると、リカバリによってデータベースがオンラインになります。
リストアを正しく実行するには、使用可能なリストアのタイプについて十分に理解しておく必要があります。このトピックでは、各復旧モデルでサポートされるリストア・シナリオについて説明します。
以下のリストア・シナリオは、単純復旧モデルでサポートされます。
• |
データベースの完全リストア:単純復旧モデル・データベースにおけるデータベースの完全リストアでは、データベース全体をリストアします。通常、このタイプのリストアでは、フル・データベースのバックアップをリストアするか、フル・データベースのバックアップに続いて差分データベースのバックアップをリストアします。データベースの完全リストアの実行中は、データベース全体がオフラインになります。 |
• |
ファイルのリストア(Windowsのみ):単純復旧モデル・データベースにおけるファイルのリストアでは、データベース全体をリストアするのではなく、損傷した1つ以上の読み取り専用ファイルをリストアします。このタイプのリストアでは、フル・ファイルおよびファイルグループのバックアップを使用します。 |
• |
部分データベースのリストア(Windowsのみ):単純復旧モデル・データベースの部分リストアでは、部分データベースのバックアップまたは差分部分データベースのバックアップ、あるいはその両方の対象となったプライマリ・ファイルグループとすべての読み書き可能ファイルグループをリストアします。読み取り専用ファイルグループが損傷した場合のみ、フル・ファイルおよびファイルグループのバックアップを使用して読み取り専用ファイルグループをリストアする必要があります。 |
以下のリストア・シナリオは、完全および一括ログ復旧モデルでサポートされます。
• |
データベースの完全リストア:完全および一括ログ復旧モデルでは、データベース全体を障害時点にリストアします。通常、完全リストア・シーケンスには、以下の事項が含まれます。 |
1 |
Tail-Logバックアップを実行します。 |
2 |
3 |
4 |
[NO RECOVERY 設定時]リストア・オプションを選択した状態で、以降のすべての増分トランザクション・ログのバックアップを順番にリストアします。 |
5 |
[RECOVERY設定時]リストア・オプションを選択して、Tail-Logバックアップをリストアし、リカバリします。 |
• |
ファイルのリストア(Windowsのみ):完全または一括ログ復旧モデル・データベースにおけるファイルのリストアでは、データベース全体をリストアするのではなく、損傷したファイルをリストアして、データベース全体をリストアします。このタイプのリストアでは、以下のリストア・シーケンスを実行します。 |
1 |
Tail-Logバックアップを実行します。 |
2 |
[NO RECOVERY設定時]リストア・オプションを選択した状態で、フル・ファイルまたはファイルグループのバックアップをリストアします。 |
3 |
[NO RECOVERY設定時]リストア・オプションを選択した状態で、差分ファイルおよびファイルグループのバックアップをリストアします。 |
4 |
[NO RECOVERY 設定時]リストア・オプションを選択した状態で、以降のすべての増分トランザクション・ログのバックアップを順番にリストアします。 |
5 |
[RECOVERY設定時]リストア・オプションを選択して、Tail-Logバックアップをリストアし、リカバリします。 |
• |
特定時点(PIT)リカバリ:増分トランザクション・ログのリストアによってリストアしたトランザクション・ログに対してPITリカバリを実行できます。Plug‑in for SQL Serverは、時間ベース(時:分:秒を使用)とマーク付きトランザクション・ベースのPITリカバリをサポートしています。PITリカバリ・オプションは、増分トランザクション・ログのバックアップおよびTail-Logバックアップをリストアする場合に使用できます。 |
• |
時間に基づくPint-in-Timeリカバリ:時間に基づくPITリカバリは、データの損傷時刻が分かっている場合に便利です。たとえば、開発者がテーブルを午前6:00:00に削除した場合、中止時刻を午前5:55:00に設定してPITリカバリを実行できます。時間に基づくPITリカバリは、関連付けられていないデータベースでのみ使用できるため、複数のSQL Serverデータベースで論理的な整合性を保つ必要がある場合は、マーク付きトランザクションに基づくPITリカバリを使用してください。 |
• |
マーク付きトランザクションに基づく特定時点リカバリ:SQL Server 2008以降では、トランザクション・ログに名前付きマークを挿入し、特定マークへのリカバリを実行することができます。この機能は、論理的に整合性を保つ必要のある複数のデータベースがある場合に便利です。特殊な手順を実装することにより、リストア後にこれらのデータベースのリカバリ可能性を確保することができます。関連付けられたデータベースは、マーク付きトランザクションへのリカバリのみが可能であるため、バックアップを実行する前に、トランザクション・ログに名前付きマークを挿入するようアプリケーションを設定する必要があります。詳しくは、SQL Server Books Onlineの「Ensuring Recoverability of Related Databases」および「Recovering to a Marked Transaction」を参照してください。 |
SQL Serverインスタンスを開始するには、masterデータベースがアクセス可能で、少なくとも部分的に使用可能である必要があります。masterデータベースが使用不可になった場合、現在のデータベースのバックアップからmasterをリストアするか、masterを再構築することによって、データベースを使用可能な状態に戻すことができます。
フル・データベースのバックアップからmasterデータベースをリストアできるのは、サーバー・インスタンスを開始できる場合のみです。masterデータベースの重大な損傷によりSQL Serverを起動できない場合に可能な唯一の方法は、masterを再構築することです。詳しくは、SQL Server Books Onlineの「Rebuilding the master Database」セクションを参照してください。
masterデータベースのリストアには、以下の作業が含まれます。
• |
masterデータベースのフル・データベース・バックアップをリストアします。 |
• |
最後のバックアップ以降にmasterに対して行われた変更は失われるため、その手順を再実行して再作成する必要があります。 |
• |
masterをリストアして変更を再適用したら、すぐにmasterをバックアップします。 |
詳細は、「代替SQL Serverへのデータのリストア」を参照してください。
以下の状況では、modelまたはmsdbデータベースをバックアップからリストアする必要があります。
• |
• |
modelまたはmsdbデータベースが損傷した場合(メディア障害などによって)。 |
modelまたはmsdbのリストア手順は、ユーザー・データベースの完全リストアを実行する場合と同じです。
msdbをリストアする前に、[コントロール パネル]で[SQL Server エージェント]サービスを停止する必要があります。Questではさらに、リストア手順では必要に応じてユーザーとの接続が切断されるため、事前にアプリケーションをシャットダウンすることをお勧めします。
© ALL RIGHTS RESERVED. 利用規約 プライバシー Cookie Preference Center