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