ZWCを使用したMSSQLセミクラスター対応バックアップ

この記事は アマンダエンタープライズ(AE)

Amanda Enterprise(以下、AEと呼びます)は、Zmanda Windowsクライアント(以下、ZWCと呼びます)と連携して、SQLServerクラスターのバックアップを取るために使用できます。 ただし、Amanda Enterpriseは完全に「クラスター対応」ではないため、注意すべき特定の制限と満たす必要のある要件があります。 ZWCは、親会社であるCarboniteのフル機能のWindowsServerバックアッププログラムであるCarboniteServerBackupとコードを共有しています。 このため、「ZWCサービス」または「ZWCデータベース」は、それぞれ「CarboniteServerBackupController」および「CarboniteServerDatabase」と表示される場合があります。 これらのCarboniteサービスは、これらの手順のZWCサービスとまったく同じように扱ってください。

ZWCは、クラスター内のすべてのノードにインストールする必要があります。

  1. SQLクラスターリソースの優先(プライマリ)所有者であるノードにZWCをインストールします。
    1. 名前の付いた新しいレジストリキー クラスタ名 (タイプ=文字列)はで作成する必要があります HKLM \ Software \ Zmanda \ ZWC \ 1.0 \ Engine \。 キー値はSQLクラスターの名前である必要があります。
    2. [サービス]メニューを開き、Carboniteサーバーデータベースサービスを再起動します。これにより、両方のサービスが再起動します。
  2. AEでSQLServerバックアップセットを構成します。
    1. プライマリノードのバックアップは、完全バックアップおよび差分バックアップとして構成できます。 参照してください SQLServerクラスターでの差分バックアップ を参照してください。
  3. SQLインスタンスを別のノードに移動し、ZWCのインストールと構成を繰り返します。
    1. 新しいSQLバックアップセットを非アクティブ化します。 バックアップセットを右クリックして、[非アクティブ化]を選択します。
    2. 他のすべてのノードで完全バックアップのみを構成します。 参照してください SQLServerクラスターでの差分バックアップ を参照してください。
  4. クラスタ内のすべてのノードに対して手順3を繰り返します。
  5. SQLインスタンスを優先(プライマリ)ノードに戻します。

初期設定後のクラスターノード間でのSQLインスタンスの移動

初期セットアップ後にSQLインスタンスをプライマリクラスターノードから別のノードに移動する場合は、スケジュールされたバックアップが実行される前にリソースを元に戻す予定がない限り、AEおよびZWC構成も調整する必要があります。

  1. まず、現在のノードでSQLバックアップセットを非アクティブ化します。
  2. SQLインスタンスを別のノードに移動します。
  3. 新しいノードでバックアップセットをアクティブ化します。

SQLServerクラスターでの差分バックアップ

AEは完全にクラスターに対応していないため、クラスター環境で差分バックアップを使用する場合は細心の注意を払う必要があります。 次のシナリオを想像してみてください。

  1. 最初の完全バックアップは、トランザクション/レコード1のノード100(優先所有者)で実行されます。SQLServerは、完全バックアップが実行されたことを記録します。
    1. このバックアップには、トランザクション/レコード1〜100が含まれます。タイプ=フル。
  2. まだノード1にある次のバックアップは、トランザクション150で作成された差分バックアップです。SQLServerは、差分バックアップが作成されたことを記録します。
    1. このバックアップには、トランザクション101〜150が含まれます。タイプ=差分。 対応するフルは1-100です。
  3. ここで、トランザクション2でSQL Serverをノード200に移動し、バックアップを取ります。 このノードのAEとZWCは、他のノードのバックアップを認識しないため、別の完全バックアップを作成する必要があります。
    1. このバックアップには、トランザクション1〜200が含まれます。SQLServerは、トランザクション200で完全バックアップが実行されたことを記録します。
  4. この時点で、SQLをノード1に戻し、トランザクション250で差分バックアップを作成します。SQLServerには、最後の完全バックアップがトランザクション200であったという記録があります。
    1. このバックアップには、トランザクション201〜250が含まれます。
    2. ただし、このノードの最後の完全バックアップには、トランザクション1〜100のみが含まれます。
  5. 今、問題があります。 トランザクションがバックアップチェーンにありません。 完全バックアップのみを復元できます。
    1. ノード1での完全バックアップの復元には、レコード1〜100のみが含まれます。復元できる差分バックアップは、トランザクション101〜150を含むバックアップのみです。トランザクション151〜250は失われます。
    2. ノード2での完全バックアップの復元には、レコード1〜200のみが含まれます。ノード1からの差分バックアップをノード2に復元することはできません。トランザクション201〜250は失われます。

上記のような問題を回避するには、次のことをお勧めします。

  1. フルバックアップまたは差分バックアップは、単一のプライマリノード、つまりSQLインスタンスクラスターリソースの優先所有者でのみ使用してください。
  2. 他のすべてのノードでのみ完全バックアップを使用してください。
  3. SQLデータがバックアップされていて、他のプライマリノードに存在している場合、SQLインスタンスをプライマリノードに戻すとき、最初に作成されるバックアップは完全バックアップである必要があります。

SQLインスタンスが、メンテナンスなどのためにクラスターの他のノードに短期間しか移動されない場合は、単一のプライマリノードにZWCをインストールして構成するだけで、バックアップスキームを簡素化できます。

MSDNブログに投稿されている次の記事を読むことをお勧めします。 SQL Serverクラスターからどのデータをバックアップする必要がありますか?