RERUNログの反映処理でデータベース定義不整合の検知対象がDSIの場合、そのDSIに関連する表定義からリカバリする必要があります。両ノードで連携して行うリカバリ手順で表定義からの再作成とデータベースの全件複写を実施します。
両ノードで連携して行うリカバリ手順の“ログ破棄の利用設定”を行う前に、メッセージで示された表のDSIまたはインデックスのDSIの場合はその表のDSIを閉塞します。その後、両ノードで連携して行うリカバリ手順の“異常原因に応じたリカバリ”で、両ノードの表定義からの再作成および正系ノードでrdbunlコマンドを実行してアンロードしたデータを、rdbsloaderコマンドを実行してロードし、全件複写します。
注意
データベース定義の不整合とは、両ノードでデータベース定義またはデータベースの状態が異なる場合のことです。副系ノードでデータベースの定義途中やデータベースの初期化途中に運用を開始した場合に発生します。
データベース定義不整合には以下があります。
ユニークインデックスのDSIの未フォーマット
表のDSIの未フォーマット
インデックスのDSI未定義
ユニークインデックスのDSO未定義
表の更新履歴の不一致
XMLインデックス活性状態
正本と副本のデータベースは、定義の変更操作履歴を含めて一致している必要があります。例えば定義の表示コマンドで一致している定義であっても、表の更新履歴が不一致の場合(ALTER TABLEなどを両ノードで異なった操作をした場合など)、RERUNログ反映処理は異常終了します。
格納データを暗号化している場合でも、rdbunlコマンドを使用して取得したDSIの退避データは暗号化されません。退避データを副系ノードに転送するときは、opensslコマンドなどのツールを使用して退避データを暗号化してください。また、退避データが不要となった際にはファイルを削除してください。
ポイント
“表K.4 表定義の再作成が不要な現象とリカバリ方法”の場合は、表定義の再作成は不要です。両ノードで連携して行うリカバリ手順の“異常原因に応じたリカバリ”にて、“リカバリ方法”で説明している操作を行います。
表定義の再作成が不要な現象 | リカバリ方法 |
---|---|
ユニークインデックス(注)のDSIの未フォーマット | 全件複写を実施する。 |
表のDSIの未フォーマット | |
インデックスのDSI未定義 | 副系ノードでDSI定義を追加し、インデックスのDSIの創成を行う。 |
XMLインデックス活性状態 | 両ノードでXMLインデックスのDSI・XMLグループ・XMLインデックスのDSOを削除後に、全件複写を実施する。 |
注) ユニークインデックスとは、一意性制約のためのインデックスです。
参照
表定義の再作成の詳細については“RDB運用ガイド(データベース定義編)”を参照してください。
rdbunlコマンドおよびrdbsloaderコマンドの詳細は“コマンドリファレンス”を参照してください。
両ノードで連携して行うリカバリ手順については“K.3.7 両ノードで連携して行うリカバリ”を参照してください。
XMLインデックスの定義削除の詳細については“RDB運用ガイド(XMLアダプタ編)”を参照してください。
退避データファイルの削除方法については“RDB運用ガイド”を参照してください。