DBミラーリングサービスの停止時に異常が発生した場合の運用手順について説明します。
DBミラーリングサービス停止時にRLPの障害が発生した場合は、RLPが閉塞してDBミラーリングサービスの停止が失敗します。
本事象が発生した場合は、DBミラーリングサービスの緊急停止を行ってから、DCUの再構築を行い、DBミラーリングシステムの運用を再開します。
操作の手順
両ノード共通の操作
RLP閉塞メッセージを確認します。
qdg20122e:RLPを閉塞しました RLP名='RLP名'
イベントログから、ディスク障害などを通知するメッセージを確認します。
DBミラーリングサービス停止の失敗を確認します。
32212: dxsvstop ('オプション名')コマンドが異常終了しました
DBミラーリングサービスまたはロググループの緊急停止を行います。
DBミラーリングサービスの緊急停止の場合
> dxsvstop -term
ロググループの緊急停止の場合
dxsvstopコマンドのrオプションを実行して、DBミラーリングサービスのリカバリ停止を行った後、dxdcustopコマンドを実行して、ロググループ単位の緊急停止を行います。
> dxsvstop -r
> dxdcustop -g ロググループ名 -term
媒体障害などを通知するメッセージから、障害の原因を調査し、ディスク交換などのリカバリを行います。
DCUを再構築します。
注意
DBミラーリングサービス停止時の異常原因として、RLPのオフラインの異常を検知する可能性があります。この場合、上記の1において以下のメッセージが出力されます。以降の対処は上記と同様です。なお、qdg20122eと同時に出力する場合があります。
RLPのオフラインの異常:
qdg20146u:RLPのオフライン処理が異常終了しました RLP名=’RLP名’ オンラインモード=’オンラインモード’
DBミラーリングサービス停止時の異常原因として、モニタ管理ファイルの障害を検知する可能性があります。この場合はモニタ管理ファイルの異常時の手順で対処してください。
DBミラーリングサービス停止時の異常原因として、ノード間で監視を行っているネットワークの障害を検知する可能性があります。この場合はノード間の通信環境の異常時の手順で対処してください。
DBミラーリングサービスの緊急停止を行うと、データベース二重化が中止され、システムの可用性が低下するため、利用者業務を停止可能になった時点でDCUの再構築を行ってください。
ポイント
DBミラーリングサービスの緊急停止時にRLP障害が発生した場合、再びDBミラーリングサービスの緊急停止を実行する必要はありません。
この場合、RLP動作環境ファイル、BC管理DB、RLM、RLCファイル、RERUN抽出ファイル、RERUN抽出作業域、RERUNログ引継ぎファイルへの障害が考えられます。
参照
モニタ管理ファイルの異常時の手順については“11.7.4 モニタ管理ファイルの異常”を参照してください。
ノード間の通信環境の異常時の手順については“11.7.2 ノード間の通信環境の異常”を参照してください。
DCUの再構築の詳細については“11.9 DCUの再構築”を参照してください。
DBミラーリングサービス停止時にRERUNログ反映処理の遅延が発生した場合は、DBミラーリングサービスの停止が失敗します。
本事象が発生した場合は、DBミラーリングサービスをリカバリ停止した後、DBミラーリングサービスを開始し、RERUNログ反映処理を完了させます。RERUNログ反映処理の完了を確認した後、再度、DBミラーリングサービスの停止を行ってください。
操作の手順
データベースサーバ1の操作
RLCの強制交替不可のメッセージを確認します。
以下のメッセージが出力されていない場合は、データベースサーバ2でRERUNログ反映処理の遅延メッセージが出力されていることを確認してください。
qdg20060u: 空きのRLCがないためRLCの強制交替はできません
DBミラーリングサービス停止の失敗を確認します。
32212: dxsvstop ('オプション名')コマンドが異常終了しました
DBミラーリングサービスのリカバリ停止を行います。
> dxsvstop -r
DBミラーリングサービスの開始を行います。
> dxsvstart -c
RERUNログ反映状態の確認を行います。
rdbbcrlpコマンドのVオプション、Oオプション、およびpオプションを指定して、RLCファイルの状態を確認します。
> rdbbcrlp -V -O -p rlp001 RLPid : 1 RLPname : rlp001 LogGroup : system OnlineMode : capture Online/Offline : online RLPstatus : normal InhibitCause : - Connection : connection DisconnectCause : - MaxExtractRLC : 99 MaxReflectRLC : - RLM RLMstatus OwnRLM-S normal OwnRLM-R normal OtherRLM-S normal OtherRLM-R normal RLCid RLCserial RLCstatus Total Capacity Used Backup Extract rlc001 99 empty 10240K 10240K 0K purge complete rlc002 100 full 10240K 10240K 8538K - - rlc003 101 using 10240K 10240K - - -
“コネクション状態(Connection)”が“コネクション状態(connection)”となっている事を確認します。また、RLCstatusの値が“full”となっているRLCが存在しなければ、RERUNログ反映処理が完了しています。
DBミラーリングサービスの通常停止を行います。
> dxsvstop
データベースサーバ2の操作
イベントログからRERUNログ反映処理の遅延メッセージを確認します。
以下のメッセージが出力されていない場合は、データベースサーバ1でRLCの強制交替不可のメッセージが出力されていることを確認してください。
32040: RERUNログの反映処理が遅延しています
RERUNログ反映処理が遅延している原因を調査します。
rdbbcpfmのrオプション、およびpオプションを実行し、RERUNログ反映処理が遅延した原因を判断します。
RERUNログ反映のコミット順序の保証単位にDSIを選択した場合の表示例
> rdbbcpfm -r -p rlp001 RDBII rdbbcpfm DATE:2012/06/20 TIME:11/51/27 RLPname RefCmdTime RefDaemonNum EmptyTime StdbyTime MaxStdbyTime RefFileNum CapTrnNum StdbyDsiNum IDTcode RefTime ReqTrnNum NoCommitNum RefTrnNum ChgDsiNum RecNum RecSize(k) FmtDsiNum FmtDsiTime rlp001 10:892 2 9:893 16:376 7:214 1 140 4 1 9:953 186 181 6 4 5610 1114 3 1:315 2 9:857 185 182 3 2 5596 1111 5 2:483
EmptyTime、StdbyTime、およびMaxStdbyTimeの値を確認します。値が大きい場合は、RERUNログ反映処理が遅延している可能性があります。値が小さい場合は、RERUNログが大量に蓄積されている可能性があります。
RERUNログ反映のコミット順序の保証単位にロググループを選択した場合の表示例
> rdbbcpfm -r -p rlp001 RDBII rdbbcpfm DATE:2012/06/20 TIME:09/20/02 RLPname RefCmdTime RefDaemonNum RefFileNum CapTrnNum StdbyTrnNum StdbyTime MaxStdbyTime DsiOrdTime IDTcode RefTime ReqTrnNum NoCommitNum RefTrnNum RecNum RecSize(k) FmtDsiNum FmtDsiTime rlp001 11:167 1 1 200 199 - 2:827 - 1 11:159 200 133 67 20000 2460 6 0:176
StdbyTime、およびMaxStdbyTimeの値を確認します。値が大きい場合は、RERUNログ反映処理が遅延している可能性があります。値が小さい場合は、RERUNログが大量に蓄積されている可能性があります。
dxsvstopコマンドを実行して、DBミラーリングサービスを停止します。
異常原因の対処方法により、以下のいずれかを実施します。
RERUNログが大量に蓄積されている場合は、DBミラーリングサービスのリカバリ停止を実施します。
> dxsvstop -r
RERUNログ反映処理が遅延している場合は、DBミラーリングサービスの保守停止を実施します。
> dxsvstop -m
異常原因の対処を行います。
RERUNログが大量に蓄積されている場合は、DBミラーリングサービスの開始時に自動的にRERUNログ反映処理が再開されるため、ここでの対処は不要です。
RERUNログ反映処理が遅延している場合は、RERUNログ反映性能のチューニングを行います。
DBミラーリングサービスの開始を行います。
> dxsvstart -r
RERUNログ反映完了の確認を行います。
rdbbcrlpコマンドのVオプション、Oオプション、およびpオプションを指定して、RLCファイルの状態を確認します。
> rdbbcrlp -V -O -p rlp001 RLPid : 1 RLPname : rlp001 LogGroup : system OnlineMode : reflect Online/Offline : online RLPstatus : normal InhibitCause : - Connection : connection DisconnectCause : - MaxExtractRLC : 99 MaxReflectRLC : 99 RLM RLMstatus OwnRLM-S normal OwnRLM-R normal OtherRLM-S normal OtherRLM-R normal RLCid RLCserial RLCstatus Total Capacity Used Backup Extract rlc001 99 empty 10240K 10240K 0K purge complete rlc002 100 full 10240K 10240K 8538K - - rlc003 101 using 10240K 10240K - - -
“コネクション状態(Connection)”が“コネクション状態(connection)”となっている事を確認します。また、RLCstatusの値が“full”となっているRLCが存在しない、かつMaxExtractRLCとMaxReflectRLCの値が同一であれば、RERUNログ反映処理が完了しています。
正系ノードでのdxsvstopコマンド実行による副系ノードのDBミラーリングサービス停止を、以下のメッセージにより確認します。
12136: 相手ノードからの要求によりDBミラーリングサービスを通常停止しました
注意
RERUNログ反映処理の完了を待たずにDBミラーリングサービスの停止を行う場合は、両ノードでDBミラーリングサービスのリカバリ停止を行ってください。残っているRERUNログの反映処理は、次回のDBミラーリングサービスの起動後に再開されます。
“コネクション状態(Connection)”が“ディスコネクション状態(disconnection)”となっている場合は、データベース二重化処理がディスコネクション状態になっています。ディスコネクション状態のリカバリを行ってください。
参照
RERUNログ反映処理のチューニング方法については “12.2 RERUNログ反映性能のチューニング”を参照してください。
ディスコネクション状態からのリカバリ方法については“11.7.5.4 ディスコネクション状態からのリカバリ”を参照してください。