ページの先頭行へ戻る
Symfoware Server V11.0.0 Mirroring Controller運用ガイド
Symfoware

5.1.4 DBミラーリングサービス停止時の異常

DBミラーリングサービスの停止時に異常が発生した場合の運用手順について説明します。

5.1.4.1 DBミラーリングサービス停止時のRLPの障害

DBミラーリングサービス停止時にRLPの障害が発生した場合は、RLPが閉塞してDBミラーリングサービスの停止が失敗します。
本事象が発生した場合は、DBミラーリングサービスの緊急停止を行ってから、DCUの再構築を行い、DBミラーリングシステムの運用を再開します。

操作の手順

両ノード共通の操作

  1. RLP閉塞メッセージを確認します。

    rdb: ERROR: qdg20122e:RLPを閉塞しました RLP名='RLP名'
  2. システムログから、ディスク障害などを通知するメッセージを確認します。

  3. DBミラーリングサービス停止の失敗を確認します。

    SYMFOWARE_SYMDX: ERROR: 32212: dxsvstop ('オプション名')コマンドが異常終了しました
  4. DBミラーリングサービスまたはロググループの緊急停止を行います。

    • DBミラーリングサービスの緊急停止の場合

      $ dxsvstop -term
    • ロググループの緊急停止の場合
      dxsvstopコマンドのrオプションを実行して、DBミラーリングサービスのリカバリ停止を行った後、dxdcustopコマンドを実行して、ロググループ単位の緊急停止を行います。

      $ dxsvstop -r
      $ dxdcustop -g ロググループ名 -term
  5. 媒体障害などを通知するメッセージから、障害の原因を調査し、ディスク交換などのリカバリを行います。

  6. DCUを再構築します。

注意

  • DBミラーリングサービス停止時の異常原因として、RLPのオフラインの異常を検知する可能性があります。この場合、上記の1において以下のメッセージが出力されます。以降の対処は上記と同様です。なお、qdg20122eと同時に出力する場合があります。
    RLPのオフラインの異常:

    rdb: ERROR: qdg20146u:RLPのオフライン処理が異常終了しました RLP名=’RLP名’ オンラインモード=’オンラインモード’
  • DBミラーリングサービス停止時の異常原因として、モニタ管理ファイルの障害を検知する可能性があります。この場合はモニタ管理ファイルの異常時の手順で対処してください。

  • DBミラーリングサービス停止時の異常原因として、ノード間で監視を行っているネットワークの障害を検知する可能性があります。この場合はノード間の通信環境の異常時の手順で対処してください。

  • DBミラーリングサービスの緊急停止を行うと、データベース二重化が中止され、システムの可用性が低下するため、利用者業務を停止可能になった時点でDCUの再構築を行ってください。

ポイント

  • DBミラーリングサービスの緊急停止時にRLP障害が発生した場合、再びDBミラーリングサービスの緊急停止を実行する必要はありません。

  • この場合、RLP動作環境ファイル、BC管理DB、RLM、RLCファイル、RERUN抽出ファイル、RERUN抽出作業域、RERUNログ引継ぎファイルへの障害が考えられます。

参照

5.1.4.2 DBミラーリングサービス停止時のRERUNログ反映処理の遅延

DBミラーリングサービス停止時にRERUNログ反映処理の遅延が発生した場合は、DBミラーリングサービスの停止が失敗します。

本事象が発生した場合は、DBミラーリングサービスをリカバリ停止した後、DBミラーリングサービスを開始し、RERUNログ反映処理を完了させます。RERUNログ反映処理の完了を確認した後、再度、DBミラーリングサービスの停止を行ってください。

操作の手順

データベースサーバ1の操作

  1. RLCの強制交替不可のメッセージを確認します。
    以下のメッセージが出力されていない場合は、データベースサーバ2でRERUNログ反映処理の遅延メッセージが出力されていることを確認してください。

    rdb:ERROR:qdg20060u 空きのRLCがないためRLCの強制交替はできません
  2. DBミラーリングサービス停止の失敗を確認します。

    SYMFOWARE_SYMDX: ERROR: 32212: dxsvstop ('オプション名')コマンドが異常終了しました
  3. DBミラーリングサービスのリカバリ停止を行います。

    $ dxsvstop -r
  4. DBミラーリングサービスの開始を行います。

    $ dxsvstart -c
  5. 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ログ反映処理が完了しています。

  6. DBミラーリングサービスの通常停止を行います。

    $ dxsvstop

データベースサーバ2の操作

  1. システムログからRERUNログ反映処理の遅延メッセージを確認します。
    以下のメッセージが出力されていない場合は、データベースサーバ1でRLCの強制交替不可のメッセージが出力されていることを確認してください。

    SYMFOWARE_SYMDX: ERROR: 32040: The reflection processing of the RERUN log has been delayed.
  2. 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ログが大量に蓄積されている可能性があります。

  3. dxsvstopコマンドを実行して、DBミラーリングサービスを停止します。
    異常原因の対処方法により、以下のいずれかを実施します。

    • RERUNログが大量に蓄積されている場合は、DBミラーリングサービスのリカバリ停止を実施します。

    $ dxsvstop -r
    • RERUNログ反映処理が遅延している場合は、DBミラーリングサービスの保守停止を実施します。

    $ dxsvstop -m
  4. 異常原因の対処を行います。

    • RERUNログが大量に蓄積されている場合は、DBミラーリングサービスの開始時に自動的にRERUNログ反映処理が再開されるため、ここでの対処は不要です。

    • RERUNログ反映処理が遅延している場合は、RERUNログ反映性能のチューニングを行います。

  5. DBミラーリングサービスの開始を行います。

    $ dxsvstart -r
  6. 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ログ反映処理が完了しています。

  7. 正系ノードでのdxsvstopコマンド実行による副系ノードのDBミラーリングサービス停止を、以下のメッセージにより確認します。

    SYMFOWARE_SYMDX: INFO: 12136: The DB mirroring service stopped in normal state by the demand from the other node.

注意

  • RERUNログ反映処理の完了を待たずにDBミラーリングサービスの停止を行う場合は、両ノードでDBミラーリングサービスのリカバリ停止を行ってください。残っているRERUNログの反映処理は、次回のDBミラーリングサービスの起動後に再開されます。

  • “コネクション状態(Connection)”が“ディスコネクション状態(disconnection)”となっている場合は、データベース二重化処理がディスコネクション状態になっています。ディスコネクション状態のリカバリを行ってください。

参照