OSやサーバの生死監視おいてハートビート異常で無条件に自動縮退を行う選択を行った場合、異常監視に関するチューニングが適切に行われていない場合には、以下のような事象が発生します。
OSやサーバのダウンおよび無応答による監視についての注意事項
OSやサーバのダウンおよび無応答は上記の通りタイムアウトによる監視を行っています。そのため、チューニングが正しく行われていないと、サーバが健全な状態にもかかわらず誤ってスプリットブレインを発生させる危険性があります。
スプリットブレインとは、一時的に両サーバがプライマリサーバとして動作してしまうために、両サーバでデータの更新業務が行われる現象をいいます。
以下の条件の場合にスプリットブレインが発生していることが確認できます。
両サーバでmc_ctlコマンドをstatusモードで実行した結果、両サーバの“host_role”が“primary”と出力される。かつ、
いずれかのサーバのイベントログに、以下のメッセージが出力されている。
プライマリサーバへの昇格処理が完了しました (MCA00062)
以下の手順で行います。なお、新プライマリサーバは上記の検出方法の2)で確認されたサーバとなります。
旧プライマリサーバおよび新プライマリサーバで動作しているすべてのアプリケーションを停止します。
データベースの調査と復旧を行います。
新プライマリサーバに反映されていない更新結果を旧プライマリサーバのデータベースから調査して、必要に応じて新プライマリサーバに適用します。
旧プライマリサーバのインスタンスおよびMirroring Controllerを停止します。
手順1.で停止したアプリケーションを再開します。
旧プライマリサーバを復旧します。
“2.5 スタンバイサーバのセットアップ”を参照して、新プライマリサーバから旧プライマリサーバを新スタンバイサーバとして構築(セットアップ)します。
OSの再起動による監視についての注意事項
データベースサーバのハートビート監視はOSのpingコマンドを利用しています。そのため、タイムアウト時間が長すぎる場合にOSが再起動すると、異常検知がされない可能性があります。これにより、プライマリサーバが停止しているにもかかわらず自動切り替えが発生せず、業務停止を引き起こす危険性があります。この事態を回避するには、以下のような方法があります。
“データベースサーバのサーバ定義ファイルのOS/サーバの異常監視のパラメータ”を参照して、タイムアウト時間をOSの再起動に要する時間よりも短くなるようにチューニングを行う。
“2.12 多重化したインスタンスとMirroring Controllerの自動起動・停止の設定”を参照して、Mirroring Controllerの自動起動の設定を行う。