ノード切替えの注意事項を説明します。
ノード切替えを開始してから完了するまでの間はデータベースへのアクセスはできません。
ノード切替え中は、データベースへのSQLやRDBコマンドの操作を実行しないでください。
ノードの生存監視は、正系ノードと副系ノード間のネットワークを利用して実現しているため、ネットワーク障害が発生した場合でもノード間の監視異常として検知することがあります。ノード間の監視異常を検知した場合、正系ノードの状態を確認してください。
DBミラーリングシステムがノードの生存監視の異常を認識すると、以下のメッセージをシステムログに出力し、利用者判断を促します。
相手ノードとの通信が切断された場合
SYMFOWARE_SYMDX: WARNING: 22002: The communication to the other node is terminated.
相手ノード監視でタイムアウトが発生した場合
SYMFOWARE_SYMDX: WARNING: 22001: Timeout occurred by other node monitoring.
このメッセージが出力された場合、利用者は正系ノードのデータベースの状態を調査して、以下のいずれかの対処を行います。
正系ノードのデータベースが正常に動作している場合
通信切断やタイムアウトの原因を調査して(モニタデーモンやネットワークの状態など)、必要な対処を行います。この場合、現状の正系ノードのデータベースで業務を継続します。
正系ノードのデータベースが正常に動作していない場合
正系ノードのデータベースやOSの強制停止を行うことで、正系ノードのデータベースを停止します。その後、ノード切替えを実施して、利用者業務を継続します。
ポイント
GCMを使用すると、ノード間の監視異常が発生したときの業務継続の判断をDBミラーリングシステムが自動的に行うため、正系ノードに異常が発生した場合は自動ノード切替えを行うことが可能となります。
ノード間の通信環境が異常となった場合は、DBミラーリングシステムによる自動ノード切替え、およびdxswitchコマンド(オプションなし)によるノード切替え、副系ノードのデータベースの異常をメッセージ出力することができません。
このような場合、以下の方法でノード切替えを実施することで利用者業務を継続してください。
DBミラーリングシステムでは、ノード間の通信環境の異常を検知すると、副系ノードに以下のメッセージを出力します。この場合、正系ノードのデータベースの状態を確認し、データベースが正常な場合、早急にノード間の通信環境をリカバリしてください。
データベースに異常が発生している場合は、正系ノードのデータベースを停止した後で、副系ノードからdxswitchコマンドのnオプションを実行することで、強制ノード切替えを行うことができます。
SYMFOWARE_SYMDX: WARNING: 22001: Timeout occurred by other node monitoring.
ポイント
GCMを使用すると、通信環境異常が発生したときの業務継続の判断をDBミラーリングシステムが自動的に行うため、正系ノードに異常が発生した場合は自動ノード切替えを行うことが可能となります。
正系ノードのOSやハードに無応答などの異常が発生し、正系ノードの状態が確認できない場合や、Symfoware/RDBの強制停止ができない場合も、正系ノードのシャットダウンなどを行いdxswitchコマンドのnオプションを実行することでノード切替えが可能です。
計画的にノードを切り替える場合や正系ノードと副系ノードの保守を交互に行う場合、DBミラーリングサービスの通常停止は、Symfoware/RDBを停止せずにノードを切り替えます。この場合は、アプリケーションサーバの操作として以下の点に注意してください。
DBミラーリングサービスの通常停止にオプションを省略したdxsvstopコマンドを使用する場合
ノード切替えの前に業務アプリケーションのコネクションをいったん停止してください。また、停止したコネクションはノードの切替え後に再開してください。
ノード切替えの前の、正系ノードのDBミラーリングサービス停止を行う前にアプリケーションサーバのConnection Managerを停止してください。
ノード切替えの後、正系ノードのDBミラーリングサービスを開始してからアプリケーションサーバのConnection Managerを再起動してください。
DBミラーリングサービスの通常停止にmcオプションを指定したdxsvstopコマンドを使用する場合
DBミラーリングサービスの通常停止中に業務アプリケーションのコネクションが強制切断されます。強制停止されたコネクションは、ノードの切替え後に再開してください。
参照
計画的なノード切替えについては“1.1.3 ノードの計画切替えの運用”を参照してください。
正系ノードと副系ノードの保守を交互に行う手順については“1.2.2.1 正系ノードと副系ノードを交互に行う保守”を参照してください。
業務アプリケーション作成時の注意事項については“Mirroring Controller セットアップガイド”の“アプリケーション作成時の注意事項”を参照してください。
DBミラーリングシステムの資源の異常によって、次のいずれかの事象が発生することがあります。
閉塞状態のRLPが存在する
一部のロググループのDCUに対してDBミラーリングサービスの緊急停止が行われたRLPが存在する
上記の場合には、以下のノード切替えができません。
DBミラーリングシステムの監視対象の異常検知による自動ノード切替え
dxswitchコマンドにオプションを指定しない、またはnオプションを指定して実行するノード切替え
業務の継続を最優先するためにノードを切替える場合は、forceオプションを指定したdxswitchコマンドによる強制ノード切替えを実行してください。
注意
forceオプションを指定したdxswitchコマンドの実行によるノード切替えを実施した場合、正系ノードから副系ノードにすべてのRERUNログが反映されず、一部データロストが発生している可能性があります。この場合は、旧正系ノードをリカバリした後で、データの調査を行ってください。
DSIの初期化処理中にノード切替えを実施する場合の注意事項を説明します。
参照
DBミラーリングサービス運用中のDSIの初期化については“4.4.3 DBミラーリングサービス運用中のDSIの初期化”を参照してください。
DSI初期化処理中のノード切替えへの考慮
以下の条件下でのDSIの初期化処理には、割付け量に依存した処理時間が必要です。このため、DSIの初期化中にノード切替えが行われると、ノード切替えに時間を要します。ノード切替えがタイムアウトとなりノード切替えが失敗する場合があります。
対象DSIの定義直後
対象DSIがアクセス禁止状態
DSIの初期化中にRERUNログの反映遅延を通知するエラーメッセージが出力されたときは、ノード切替えが中断します。この場合は、DSIの初期化完了を通知するメッセージを確認してから、いったんDBミラーリングサービスのリカバリ停止し、DBミラーリングサービスを開始することで、ノード切替えを再開してください。
RERUNログの反映遅延を通知するエラーメッセージ
SYMFOWARE_SYMDX: ERROR: 32040: The reflection processing of the RERUN log has been delayed.
DSIの初期化完了を通知するメッセージ
rdb: INFO: qdg20748i:RERUNログ反映によるDSIの初期化が完了しました DSI名='DB名.DSI名' RLP名='RLP名'
ポイント
表のDSI定義やインデックスのDSI定義を行った直後にDSIの初期化を実施する場合には、DBミラーリングサービスが停止している状態で、定義操作を行った後に続けて両ノードでSymfoware Serverのrdbfmtコマンドを実行してください。
DSI初期化処理中にノード切替えが行われた場合の対処
DSIの初期化処理中に、異常発生などによりノード切替えが行われた場合は、旧正系ノードでノード組込みを実施した後、Symfoware/RDBの起動、DSIの初期化を行ったデータベースのリカバリを実施して、DBミラーリングサービスを再開してください。
なお、DSIの初期化中にSymfoware/RDBが停止した場合には、ダウンリカバリの異常が原因で該当DSIがアクセス禁止状態となる場合があります。
操作の手順
データベースサーバ1の操作
モニタデーモンを起動します。
$ dxstart
dxrebuildコマンドを実行して、ノード組込みを行います。
$ dxrebuild
データベースサーバを起動します。
監視プロセスを起動します。
BC管理DBのメモリ常駐をします。
ダウンリカバリの異常が原因のアクセス禁止状態となったDSIをリカバリします。
副系ノードのDBミラーリングサービスを再開します。
$ dxsvstart -r
データベースサーバ2の操作
Symfoware ServerのrdbinfコマンドまたはRDBREPORTに出力されたメッセージによりDSIの初期化状態を確認します。
rdb: INFO: qdg20748i:RERUNログ反映によるDSIの初期化が完了しました DSI名='DB名.DSI名' RLP名='RLP名'
DSIの初期化が確認できなかった場合は、Symfoware Serverのrdbfmtコマンドの実行によりDSIを初期化します。
参照
ノード組込みについては“2.4 ノード組込み”を参照してください。
データベースサーバの起動については“2.1.2 データベースサーバの起動”を参照してください。
監視プロセスの起動については“2.1.3 監視プロセスの起動”を参照してください。
BC管理DBのメモリ常駐については“2.1.4 BC管理DBのメモリ常駐”を参照してください。
アクセス禁止状態になったDSIのリカバリについては“5.4.2 データベースの異常”を参照してください。
Symfoware Serverのrdbinfコマンドおよびrdbfmtコマンドの詳細については“コマンドリファレンス”を参照してください。