相手サーバでシステム異常が発生した場合、自サーバでの対処方法を説明します。
基本的な対処
差分同期を使用したレプリケーションの環境で、相手サーバでシステム異常が発生しても自サーバの運用は継続できます。ただし、復旧に長時間を要すると、更新情報ファイルが枯渇する可能性があります。その場合は、自サーバの業務を停止することを推奨します。
対処
相手サーバでシステム異常の発生が判明した場合、自サーバで更新情報ファイルが枯渇していないことを確認してください。
相手サーバのシステム異常を復旧するまでの間、自サーバの利用者プログラムは正常に動作しますが、同期の実行が失敗します。
自サーバでは、利用者プログラムを運用すると、同期対象のデータファイルに対する更新で更新情報が取得されますが、同期の実行が失敗するため、更新情報が削除されず更新情報ファイルが枯渇する可能性があります。
自サーバの業務を継続する場合
相手サーバのシステム異常を復旧するまでの間も、自サーバで業務を継続する場合、復旧するまでの時間を考慮して更新情報ファイルのサイズを見積もっておくことが必要です。
"4.3.1 問題発生の予兆を検知する"を参照して更新情報ファイルの枯渇を確認してください。
更新情報が出力、削除される仕組みは、"2.3.2 差分同期の仕組み"を参照してください。
更新情報ファイルの見積り方法は、以下を参照してください。
Oracleを使用する場合:"3.3.2 レプリケーションの環境を設計する"の"データ量を見積もる"
SQL Serverを使用する場合:"3.4.2 レプリケーションの環境を設計する"の"データ量を見積もる"
同期実行中に、相手サーバでシステム異常が発生した場合、自サーバのレプリケーションサービスは、同期実行中の状態が維持されているため、復旧後の同期実行がエラーとなる場合があります。
相手サーバを復旧し、業務を再開する前に、自サーバでrpctlsynコマンドを使用して、システム異常が発生した相手サーバと連携するレプリケーショングループの同期実行状態を確認してください。
「同期実行状態」が、"未実行(異常終了)"の場合、rpctlsynコマンドを使用して、該当するレプリケーショングループの同期を中止(-cパラメタを指定)してください。
同期実行状態の確認方法および同期の中止方法は、"7.10 同期実行の状態表示/中止コマンド"および"付録H 同期実行状態の表示内容"を参照してください。
複数のサーバと連携する場合
データファイルのマスタとレプリカの関連づけ方法に応じて対処してください。
1つのマスタ定義を複数のレプリカ定義に関連づけた場合
図5.4 1つのマスタ定義を複数のレプリカ定義に関連づけた場合
基本的な対処を行った上で、以下を考慮してください。
マスタ側のサーバAでシステム異常が発生した場合
同期の実行は失敗しますが、レプリカ側のサーバBおよびサーバCは、サーバ単体の業務を継続できます。
図5.5 複数のレプリカと関連づけたマスタのサーバでシステム異常が発生した場合
レプリカ側のサーバB(またはサーバC)でシステム異常が発生した場合
正常に動作しているレプリカ側のサーバは、マスタ側のサーバと同期を実行できます。
図5.6 一部のレプリカのサーバでシステム異常が発生した場合
一対一で関連づけて異なるサーバと連携する場合
図5.7 一対一で関連づけて異なるサーバと連携する場合
基本的な対処を行った上で、以下を考慮してください。
マスタ側のサーバAでシステム異常が発生した場合
同期の実行は失敗しますが、レプリカ側のサーバBおよびサーバCは、サーバ単体の業務を継続できます。
図5.8 一対一で関連づけマスタのサーバでシステム異常が発生した場合
レプリカ側のサーバBまたはサーバCの一方でシステム異常が発生した場合
正常に動作しているレプリカ側のサーバは、マスタ側のサーバと同期を実行できます。
図5.9 一対一で関連づけレプリカのサーバでシステム異常が発生した場合
マスタ側にスケジュールを設定している場合、rpctlschコマンドを使用して、システム異常が発生したサーバと連携するレプリケーショングループのスケジュールを停止できます。
なお、マスタ側のサーバAで自動ジョブサービス「PowerReplication ATJS」を停止すると、正常に動作しているレプリカ側のサーバと同期するスケジュールも停止します。
rpctlschコマンドの詳細は、"7.3 スケジュールの開始/停止コマンド"を参照してください。