>> はじめに |
|
前回まで7回に渡ってMS SQL Serverに対応した各種のバックアップ手法について確認してきました。スタンドアロン環境の基本的なバックアップ/リストアについては特に工夫をこらすことなく対応できますが、より大規模なエンタープライズ構成の場合には、手法そのものを見直すことで、大きな効果がでる場合があります。最終回の今回は、そのような構成と今後の予定についてご紹介します。
>> ストレージのスナップショットを使用したバックアップ方法 |
|
データベースの容量が用途によっては数百GBにもなり、通常のオンライン・バックアップでは、バックアップ時の影響が無視できなくなるようなケースでは、ストレージのスナップショット機能を使用する事が増えてきています。NetVaultのMS SQL APMには、SQL Server自体のメタデータのみをバックアップし、実データはストレージのスナップショットを活用してバックアップを行うための機能が備わっています。
全体の仕組みとしては次のようになります。
Step 1:
MS SQL APMでVDIを使用し、データに対するアクセスを止めた後に、スナップショットを実行します。スナップショット作成後に、アクセス制限を解除します。Step 2:
MS SQL APMの機能で、SQL ServerのMetaデータをバックアップします。NetVault Client
からNetVault Serverへの転送は、LAN経由で行われますが、Metadataのサイズは数MB程度と小さいため、ネットワークのトラフィックは無視できるレベルです。Step 3:
SQL Serverのバックアップを行うジョブの詳細設定で、ポストスクリプトにより、実データのバックアップをNetVault Server側で行うようなトリガージョブを呼び出します。この時、トリガージョブが終了するまで待つようスクリプトを作成し、トリガージョブ終了後の処理も行えるようにしておきます。Step 4:
トリガージョブにより、実データのバックアップをFile Systemプラグインを使用して行いますが、作成されたスナップショット領域がマウントされていないので、プレスクリプトによりディスクのマウント状態を有効にし、実データをバックアップした後に、ポストスクリプトにより解除するような設定を行います。Step 5:
NetVault Server側での実データのバックアップが終了後、作成したスナップショットを削除するようStep3で使用するポストスクリプトの最後に記述しておきます。
では、実際にバックアップジョブの作成手順について考えてみます。この例ではNetVaultサーバをDEMO1という名前で構成し、NetVaultクライアントにはWIN2003EEとして、MS SQL Server 2000を稼動させた上で、MS SQL APMを導入してあります。実データのバックアップをNetVault Server側で実施することで、MS SQL Serverに対する負荷が大幅に軽減します。
SQL Server構築時には、必ずデータファイルの置き場所を、スナップショット機能を利用可能な外部ストレージに設定しておく必要があります。
まず、MS SQL APMを使用したバックアップジョブを作成します。バックアップ・セレクションでは、通常通りSQL Serverのインスタンスを指定します。
次にバックアップオプションで、"Snapshot Format"にチェックを入れます。こうすることで、VDI経由でアクセスを停止した状態になり、その間"SnapShot Script:"で指定されたコマンドを実行します。なお、このチェックを入れることで実データのバックアップは行われないようになるため、スナップショットを使用しない場合には、絶対にチェックを入れないよう注意が必要です。コマンド実行後は再びデータ・ファイルへアクセスできるようにします。このスナップショット・コマンドを実行してから終了するまでの時間は、最大でも10秒以内に完了することがマイクロソフト社によって推奨されています。
スクリプトは、必ずMS SQL APMが導入されたマシン上の、NetVaultインストール・ディレクトリ以下のscriptsディレクトリ以下に配置する必要があります。そのため、スクリプトの指定は、ファイル名をフルパスで入力するのではなく、単にファイル名のみでの指定となります。
ご参考までに、次のスクリプトは、EMC社製のディスク装置であるAX100iを使用し、Sドライブとして認識されるディスクに対してスナップショットを作成するようになっています。これらの処理は、使用するディスクによって異なるため、詳細が不明な場合には、ご使用のストレージ・ベンダーにご相談することをお勧めします。
|
スケジュールは希望するポリシーで設定します。ここでは、毎週土曜日の23時から実行されるようにしています。
最後の詳細設定では、ポストスクリプトによりスナップショットとして作成されたボリュームを、バックアップサーバでマウントしてバックアップするため、トリガージョブを"-wait"オプション付きで実行することで、サブルーチンのように呼び出します。
datafile.bat | ||
|
呼び出された、DATAFILEという名前のトリガージョブは次のようになります。まず、バックアップ選択では、NetVault Server側でスナップショットとしてマウントされるボリュームを指定します。ジョブ作成時には実際にボリュームが存在している必要があるため、手動でマウントするなどしてとにかく、バックアップ対象を表示できる状態で、ジョブを作成します。
バックアップオプションは特に何もありません。データベースの場合、常にデータ・ファイルに変更が入るため、差分や増分バックアップを行ってもあまり意味がありません。素直に常にフルバックアップを選択します。
スケジュールは、特定の時間ではなくトリガーによって実行されるようにするために、datafile.batから呼び出される名前を指定しておきます。
詳細設定では、プレ・スクリプトとポスト・スクリプトでそれぞれ、ディスクのマウントをマウント解除が行えるようなスクリプトを指定します。こちらのスクリプトはNetVault Server側で実行されるため、NetVault ServerのNetVaultインストール・ディレクトリ以下のscriptsディレクトリに用意します。
databackstart.bat | ||
|
databackend.bat | ||
|
ジョブを実際に作成すると、定義は2つになります。最初にMS SQL APMのバックアップが行われ、途中でスナップショットをマウントしてバックアップするサブタスクが呼び出された後に、最終的に2つのジョブが完了となります。
これらのジョブの連携は、うまく動作すればよいのですが、スクリプトの作り方が悪いと、なんらかのエラーになります。その際には、スクリプトを見直すと共に、NetVaultのログを詳しく見ることで解決できるはずです。
>> クラスタ環境のバックアップ |
Microsoft SQL Server環境の可用性を高めるには、MSCS等のクラスタウェアが使用されます。現在のところ、正式にMS SQL Serverのクラスタ環境を対象としたバックアップに関する検証レポートは公開していせんが、下記のMSCS環境におけるMS Exchange Serverのバックアップ検証レポートが参考になります。
Microsoft Windows Server 2003 MSCS クラスタリング環境におけるNetVault ファイル・システム/ Microsoft Exchange Server 2003バックアップ動作検証 (.pdf, 949 kb)
また、上記のレポートではActive-Standby環境のクラスタ対応について記載されていますが、今後リリース予定の新しいNetVaultのバージョンでは、下図のように仮想IPによる動的なNetVaultクライアントの切り替えが行えるようになりActive-Active環境にも対応可能になります。もともとは、NetVault 7.3として2005年中のリリースを予定していましたが、より機能の拡充と安定性の向上が行われた新バージョンにご期待ください。
>> 最後に |
|
以上で全8回に渡ってSQL Serverのバックアップをご紹介してきました。基本となるところについては、ご理解いただけたかと思います。より複雑なソリューションについては、必ずしも正解がひとつとは限らないので、その都度要件に合わせて考えていく必要があります。
なお、現在マイクロソフト社から提供されているSQL Serverのバージョンは2005です。本バージョンに対応したNetVaultのMS SQL APMは、2006年夏ごろにリリースを予定しています。