Symfoware Active DB Guard 運用ガイド |
目次
索引
![]() ![]() |
第4章 異常時の運用 | > 4.10 複写先システムのRERUNログ反映の異常 | > 4.10.5 RERUNログ反映実行時のデータベース定義異常 |
RERUNログ反映中にデータベース定義不整合を検出した場合には、メッセージを出力して、rdbbcrefコマンドが異常終了します。
データベース定義の不整合とは、複写元システムと複写先システムでデータベース定義またはデータベースの状態が異なる場合のことです。複写先システムでデータベースの定義途中やデータベースの初期化途中に運用を開始した場合に発生します。
両システムでの環境構築の不整合であるため表定義からの再作成を推奨します。
不整合発生原因によっては、表定義の再作成が不要の場合があります。
データベース定義不整合には以下のものがあります。
ユニークINDEXのDSIの未フォーマット
表のDSIの未フォーマット
INDEXのDSI未定義
ユニークINDEXのDSO未定義
表の更新履歴の不一致
複写元システムと複写先システムでは、実表に対する列定義の追加や削除などの変更操作履歴も一致している必要があります。表の更新履歴の不一致は、これまで定義したCREATE TABLE、ALTER TABLEなどの定義の内容、および実行順番が両システムで異なった操作をした場合に発生します。定義の表示コマンドでは一致している定義であっても、両システムで保持している内部情報が不一致の状態であり、正常な反映処理は実施できません。
メッセージから対象資源を特定し、rdbbcrefコマンドを実行して、その他の資源の反映処理を行うとともに、対象のDSIのログ破棄を実行します。その後、RLPを切り替えオフラインにして、表定義からDSIを両システムで再作成します。
データベース定義不整合からのリカバリ操作の流れを以下に示します。
利用者業務を停止します。
rdbbcswhコマンドを実行し、RLCファイルの強制交替を実施します。
$ rdbbcswh -p RLP名 |
rdbbcofflineコマンドを実行し、切り替えオフラインにします。
$ rdbbcoffline -p RLP名 -m switch |
rdbunlコマンドを実行し、対象の表に関連するDSIのアンロードを実施します。
表定義からの再作成を実施します。
5で取得したアンロードデータで、rdbsloaderコマンドを使用してすべてのDSIを創成します。
rdbbconlineコマンドを実行し、オンラインにします。
$ rdbbconline -p RLP名 -m capture |
利用者業務を再開します。
メッセージにより、リカバリ対象資源を特定します。
rdbbcrefコマンドの実行を停止します。
特定したリカバリ対象資源をrdbinhコマンドを実行して対象のDSIを閉塞に設定してから、rdbbcrefコマンドを実行してその他の資源の反映処理を行うとともに、対象のDSIのログ破棄を実行します。
$ rdbbcref -p RLP名 -a -f inh |
rdbbcofflineコマンドを実行し、切り替えオフラインにします。
$ rdbbcoffline -p RLP名 -m switch |
表定義からの再作成を実施します。
複写元システムでアンロードしたデータを利用して、rdbsloaderコマンドですべてのDSIを創成します。
rdbbconlineコマンドを実行し、オンラインにします。
$ rdbbconline -p RLP名 -m reflect |
rdbbcrefコマンドを実行し、RERUNログの反映を再開します。
$ rdbbcref -p RLP名 -a |
不整合発生原因によっては、表定義からすべての再作成を行わずにインデックスなど一部の対処で可能な場合があります。下の表をもとに、表定義の再作成を行わずにリカバリできるかどうかを判断してください。なお、判断が難しい場合は、表定義からリカバリすることを推奨します。
現象 |
リカバリ方法 |
ユニークINDEXのDSIの未フォーマット |
複写先システムで対象のDSIのフォーマットを行う。または、表のDSIのロードを行う。 |
表のDSIの未フォーマット |
|
INDEXのDSI未定義 |
複写先システムでDSI定義を追加する。 |
ユニークINDEXのDSO未定義 |
複写先システムで表定義から再作成を行う。 |
「表の更新履歴の不一致」の場合は必ず両システムの表定義から再作成を行う必要があります。
ログ破棄の詳細については“ログ破棄”を参照してください。
全件複写の詳細については“全件複写によるデータの移行”を参照してください。
目次
索引
![]() ![]() |