>> はじめに |
|
前回は、フルバックアップに関するリストア/リカバリの手順を確認しました。今回はその続きとして差分バックアップやトランザクションログのバックアップを併用した場合について、確認していきます。
>> [週末に一回フルバックアップ、平日差分バックアップ] |
|
testdataという名称のデータベース上に、郵便番号というテーブルをテスト用に作成し、トランザクションを加えながら、バックアップのテストを行って見ました。
MS SQL APMでは、複数のデータベースを対象にバックアップすることができます。しかし、以前の講座でご説明しましたように、復旧モデルによって対応できるバックアップの種類に違いがあります。
すべてのモデルで差分バックアップが対応できるように書かれていますが、例外としてmasterデータベースはフルバックアップのみの対応です。
以下のように、複数のデータベースがありますが、頻繁に更新されると想定したtestdataというデータベースと、それ以外のデータベースを分けてジョブを作成します。
testdata以外のデータベースは、すべて同じセレクションセットとし、フルバックアップのみを実行します。
testdataについては、それだけで単独のセレクションセットとし、まずフルバックアップを実行します。
次に、差分の確認のために郵便番号のテーブルにトランザクションを発生させ、8件のデータを追加した状態を確認します。
testdataだけ差分バックアップを行うように、フルの時と同じセレクションセットをロードして、バックアップオプションの、Backup Typeだけを"Database - differential"に設定し、わかりやすいジョブ名を入力後にジョブを実行します。 オプションの詳細は以前の講座を参照してください。
以上で、差分バックアップは終了です。定期的に複数回の差分バックアップを実行するのであれば、あとはスケジューリングを設定するだけです。
>> [週末に一回フルバックアップ、平日差分バックアップ、一日に数回トランザクションログバックアップ] |
|
次に、差分バックアップと併用、もしくは差分バックアップとは独立してトランザクションログを使用する方法をご紹介します。
トランザクションログのバックアップを確認するため、ここでは、さらにデータを追加して合計502行のテーブルにしています。
testdataだけ、差分バックアップの時と同じセレクションセットをロードし、バックアップオプションの、Backup Typeを"Transaction log"に設定後に、ジョブ名を入力して実行します。
最終的には、testdata以外のデータベースは、フルバックアップのみ、testdataは、フルバックアップ、差分バックアップ、トランザクションログバックアップの順に実行され、以下のように4つのバックアップセットが確認できます。
>> [週末に一回フルバックアップ、平日差分バックアップ]を行う場合の復旧手順 |
|
前回の講座同様に、testdataのみに障害を発生させるために、データベースのサービスを停止し、testdataに対応するファイルを削除します。
削除後に、データベースを起動すると、testdataは未確認のステータスになります。
この状態で、リストア画面からまずtestdataのフルバックアップデータをリストアします。重要な事は、リストアオプションの"Action after restore"で、このリストア以降にも差分やログ等のリストアができるように、"Set database non-operational; more transaction logs can be restored"を選択するということにあります。
最初のフルバックアップ完了後の状態を、Enterprise Managerで確認すると、リストアされたデータベースは使用可能ではなく、更なる追加リストアを受け付ける"読み込んでいます"というステータスに変化します。
次に、リストア画面から差分バックアップのジョブをリストアします。リストアオプションで"Set database operational; no more transaction logs can be restored"を選択すれば、差分バックアップを行った時点までの復旧が可能になります。
リストア後にデータベースの状態が正常になっているのを確認して完了です。
差分の後に更にトランザクションログをリストアする予定がある場合は、リストアオプションで"Set database non-operational; more transaction logs can be restored"を指定しておきます。
>> [週末に一回フルバックアップ、平日差分バックアップ、一日に数回トランザクションログバックアップ]を行う場合の復旧手順 |
トランザクションログのリストアは、フルバックアップや差分バックアップのリストア実行時に、リストアオプションで"Set database non-operational; more transaction logs can be restored"を指定しておいた場合に、実行可能です。
今までと同様にリストア画面で、今度はトランザクションログのセットを選択します。
ログが複数ある場合は、リストア時にリストアオプション"をSet database non-operational; more transaction logs can be restored"にしておき、最後のトランザクションログのリストア時に"Set database operational; no more transaction logs can be restored"によって動作できるようにします。
復旧後は、正しくデータベースが認識されます。また、テーブルに登録されたデータの件数を確認してみても、テスト前とはまったく同じデータが現れています。
>> 次回は・・・ |
|
SQL Serverの最終回として、様々なソリューションや、今後のSQL Serverに対する対応予定などをご説明します。