3.2.9 インナレプリカ機能を使ったRDエリアのデータ連動
HiRDBのインナレプリカ機能を使ったRDエリアも,Datareplicatorでデータ連動できます。
インナレプリカ機能では,オリジナルRDエリアとレプリカRDエリアのどちらの更新でもシステムログファイルに更新ログが出力されます。この更新ログから,抽出対象表IDに該当する更新ログをDatareplicatorが抽出します。
反映側DBがインナレプリカ機能を使っているときは,データ連動対象のカレントRDエリア(オリジナルRDエリア又はレプリカRDエリア)又は特定世代のデータベースへ反映できます。ただし,表ごとに反映先を切り替えることはできません。特定世代のデータベースへ反映する場合は,HiRDBの環境変数PDDBACCSで指定してください。
インナレプリカ機能を使ったRDエリアのデータ連動を次の図に示します。
- 〈この項の構成〉
(1) インナレプリカのデータ連動の定義
更新ログの抽出方法は,「5.3 抽出環境定義」のextract_levelオペランドに指定します。extract_levelオペランドの指定値と抽出する更新ログの関係は次のとおりです。
-
current_gen:抽出対象のHiRDBがインナレプリカ機能を使っているときに,カレントRDエリアに対する更新だけを抽出の対象にします。
-
all_gen:抽出対象のHiRDBがインナレプリカ機能を使っているときに,すべてのレプリカRDエリア(オリジナルRDエリアを含む)に対する更新を抽出対象にします。
インナレプリカの運用に従って,次に示す指針でextract_levelオペランドを指定してください。
インナレプリカの運用 |
extract_levelオペランドの指定値 |
---|---|
常にカレントRDエリアがマスタ(抽出対象)になる運用 |
extract_level=current_genを指定 |
カレントRDエリア以外がマスタ(抽出対象)になる状態がある運用 |
ディスクの切り離し時にextract_level=all_genを指定※ |
- 注※
-
extract_level=all_genを指定する場合には,制限事項があります。詳細は「(2)制限事項」を参照してください。
extract_levelオペランドを指定する指針を次に示します。
(2) 制限事項
-
イベント制御用テーブルに対する更新(イベント発行)については,抽出側Datareplicatorの定義に関係なく,すべての世代に対する更新を抽出します。
-
PURGE TABLEについては,extract_level=current_genの場合,操作対象のRDエリアがすべてカレントRDエリアであるPURGE TABLEだけを抽出します。
-
データ連動対象のRDエリアは,できるだけカレントRDエリアとして,抽出レベルにはcurrent_genを指定してください。
データ連動対象のレプリカRDエリアをカレントでないRDエリアにするときは,抽出レベルにはall_genを指定してください。このとき,データ連動対象かどうかに関係なく,すべてのレプリカRDエリアに対する更新が抽出対象になるため,データ連動対象外のレプリカRDエリアを更新すると,データ連動に不整合が起こります。そのため,抽出レベルをall_genに設定したときは,データ連動対象のレプリカRDエリアだけを更新してください。抽出レベルをall_genに設定したときに,データ連動に不整合が起こる例を次に示します。
-
抽出対象とするレプリカRDエリアを変更するときは,変更先のレプリカRDエリアが反映側DBと同期が取れていなければなりません。抽出対象とするレプリカRDエリアの変更手順を次に示します。