SQL Remote 環境用のフェールオーバ・システムの作成
概要:この文書では、SQL Remote 環境用のフェールオーバ・システムを Adaptive Server Anywhere (SQL Anywhere) 7.x 以降で作成する方法について説明します。 Adaptive Server Anywhere (SQL Anywhere) 7.x 以降では、データベース・イベントが採用されています。イベントをデータベースに追加することで、Adaptive Server Anywhere (SQL Anywhere) の定型タスクを自動化できます。イベントには、定期イベントとシステム・イベントがあります。使用可能なイベントの 1 つに、BackupEnd イベントがあります。このイベントは、データベース・ファイルのフル・バックアップまたはインクリメンタル・バックアップの最後に起動します。このバックアップ・イベントを使用してレプリケーション環境のファイルを操作し、メディア障害が原因で統合データベースがダウンした場合のフェールオーバ・システムを実現できます。
統合データベース用のフェールオーバ・システムを作成する場合は、すべてのバックアップ・ファイルを別のサーバにコピーする必要があります。リカバリでは、すべてのインクリメンタル・ログ・ファイルのバックアップを、最後に検証した統合データベースのフル・バックアップに適用するだけです。BackupEnd データベース・イベントを使用して、この処理を簡単に管理し、ダウン時間を短縮できます。
次の例では、BackupEnd イベントで起動する CopyBackup というイベントを作成します。ウォーム・スタンバイ・メカニズム用に、xp_cmdshell を呼び出してファイルを別のシステムにコピーします。新しいフル・バックアップは、他のシステムにコピーされます。その後は、継続的にインクリメンタル・バックアップが実行されます。運用マシンで不測のイベントが発生した場合は、バックアップ・マシンでトランザクション・ログをデータベース・ファイルのフル・バックアップに適用し、レプリケーションを再開できます (これで、データベースは最新になります)。この処理により、リカバリに必要な時間を大幅に短縮できます (ログ内のトランザクション量によって異なります)。
BackupEnd イベントは、次のようになります。
CREATE EVENT CopyBackup
Type BackupEnd
AT CONSOLIDATED
HANDLER
BEGINcall xp_cmdshell (‘copy
C:\LocalServer\validation_directory\\warm-standby-machine\ASA-dir’);// after copying the log file over to the “warm standby” machine, you could also
//program for the EndBackup event to make an external procedure call to apply that
//log file to the last fully backed up database on that machine.
END;
また、このイベントにさらにロジックを追加し、ログ・ファイルをバックアップ・データベース・ファイルに自動的に適用できます。この例は、テンプレートとして使用できます。この例を参考にして、データベース・イベントを柔軟に利用してください。