ページの先頭行へ戻る
Symfoware Server V10.1.0 データベース二重化導入運用ガイド

L.3.2 データベース定義不整合からのリカバリ

RERUNログの反映処理でデータベース定義不整合を検知した場合のリカバリは、 両ノードで連携して行うリカバリ手順で表定義からの再作成とデータベースの全件複写を実施します。
両ノードで連携して行うリカバリ手順の“ログ破棄の利用設定”を行う前に、メッセージで示されたDSIを閉塞します。その後、両ノードで連携して行うリカバリ手順の“異常原因に応じたリカバリ”で、両ノードの表定義からの再作成および正系ノードでrdbunlコマンドを実行してアンロードしたデータを、rdbsloaderコマンドを実行してロードし、全件複写します。

ポイント

表L.4 表定義の再作成が不要な現象とリカバリ方法”の場合は、表定義の再作成は不要です。両ノードで連携して行うリカバリ手順の“異常原因に応じたリカバリ”にて、“リカバリ方法”で説明している操作を行います。

表L.4 表定義の再作成が不要な現象とリカバリ方法

表定義の再作成が不要な現象

リカバリ方法

ユニークインデックス(注)のDSIの未フォーマット

副系ノードで対象のDSIをrdbfmtコマンドでフォーマットを行う。または、表のDSI をrdbunlコマンドでアンロードしたデータをrdbsloaderコマンドでロードを行う。

表のDSIの未フォーマット

インデックスのDSI未定義

副系ノードでDSI定義を追加する。

ユニークインデックス(注)のDSO未定義

副系ノードで表定義から再作成を行う。

注) ユニークインデックスとは、一意性制約あるいはPRIMARY制約のためのインデックスです。

参照

  • 表定義の再作成の詳細については“RDB運用ガイド(データベース定義編)”を参照してください。

  • rdbunlコマンドおよびrdbsloaderコマンドの詳細は“コマンドリファレンス”を参照してください。

  • 両ノードで連携して行うリカバリ手順については“L.3.6 両ノードで連携して行うリカバリ”を参照してください。

参考

  • データベース定義の不整合とは、両ノードでデータベース定義またはデータベースの状態が異なる場合のことです。副系ノードでデータベースの定義途中やデータベースの初期化途中に運用を開始した場合に発生します。
    データベース定義不整合には以下があります。

    • ユニークインデックスのDSIの未フォーマット

    • 表のDSIの未フォーマット

    • インデックスのDSI未定義

    • ユニークインデックスのDSO未定義

    • 表の更新履歴の不一致

  • 正本と副本のデータベースは、定義の変更操作履歴を含めて一致している必要があります。例えば定義の表示コマンドで一致している定義であっても、表の更新履歴が不一致の場合(ALTER TABLEなどを両ノードで異なった操作をした場合など)、RERUNログ反映処理は異常終了します。