3.1.1 レプリカ作成ガイドライン
レプリカは,次に示す内容を考慮して作成します。
-
レプリカの作成単位
-
レプリカの作成対象になれるRDエリアおよびHiRDBファイルシステム領域
-
レプリカを作成するときのまとまり
-
レプリカRDエリアの定義と実体の作成時の注意
-
どのRDエリアへアクセスするかを考慮した世代番号の検討
-
インナレプリカグループ内データの整合性の保持の検討
-
レプリカRDエリアのオープン属性について
-
HiRDB Datareplicatorを使用している場合の注意
-
順序数生成子を使用している場合の注意
-
ディクショナリ表のメンテナンスについて
ここでは,それぞれについて説明します。
- 〈この項の構成〉
(1) レプリカの作成単位
HiRDB Staticizer Optionがレプリカとして扱うRDエリア(レプリカRDエリア)は,次に示す単位で作成されます。
-
ユーザデータ格納用RDエリアのレプリカを作成
-
HiRDBファイルシステム領域ごとに作成
-
オリジナルRDエリアと同じサーバ内に作成
ここでは,それぞれについて説明します。また,基になるRDエリアに対して作成できるレプリカRDエリアの数についても説明します。
(b) オリジナルRDエリアと同じサーバ内に作成
レプリカRDエリアは,オリジナルRDエリアと同じバックエンドサーバまたはシングルサーバ内に作成されます。オリジナルRDエリアと異なるサーバへは定義・作成できません。
(c) HiRDBファイルシステム領域ごとにミラーリング
ミラーリング機能では,HiRDBファイルシステム領域のコピーを作成します。したがって,レプリカの物理的な最小単位は,HiRDBファイルシステム領域です。
(d) 1RDエリアにつき10個のレプリカRDエリアを作成可能
一つのRDエリアにつき,レプリカRDエリアを10個まで作成できます。オリジナルRDエリアとn個のレプリカRDエリアのまとまりをインナレプリカグループと呼びます。インナレプリカグループ内のRDエリアの識別には,それぞれに付与されている世代番号を使用します。世代番号の付け方の検討については,「どのRDエリアへアクセスするかを考慮した世代番号の検討」を参照してください。
(2) レプリカの作成対象になれるRDエリアおよびHiRDBファイルシステム領域
レプリカRDエリアは,インナレプリカ機能を使用するRDエリアのHiRDBファイルだけを集めたHiRDBファイルシステム領域に作成できます。
- インナレプリカ機能を使用するRDエリアのHiRDBファイルだけを集めたHiRDBファイルシステム領域
-
HiRDB Staticizer Optionでは,レプリカをHiRDBファイルシステム領域ごとに定義,作成します。一つのHiRDBファイルシステム領域内に,インナレプリカ機能を使用するRDエリアのHiRDBファイルと使用しないRDエリアのHiRDBファイルが混在していると,運用上,問題が発生するおそれがあります。必ず,インナレプリカ機能を使用するRDエリアのHiRDBファイルだけが集まっているHiRDBファイルシステム領域をレプリカ作成対象としてください。
(3) レプリカを作成するときのまとまり
レプリカRDエリアを作成するときには,システム上または運用上,関連のあるデータをすべて一組としてまとめて扱って作成する必要があります。例えば,表に関連するデータ(インデクス,BLOB列,抽象データ型の列,プラグインインデクス)は,一組として扱います。一組として扱うときには,常に,まとまり内のデータの整合性を意識しながら,同期を取ってレプリカを作成するようにしてください。
(4) レプリカRDエリアの定義と実体の作成時の注意
レプリカRDエリアの定義は実体の情報と矛盾のないようにする必要があります。
- レプリカRDエリアの構成ファイルシステム情報は,実体の情報との整合性を確保する
-
レプリカRDエリアを定義すると,HiRDBはレプリカRDエリアの構成ファイル情報をシステムへ登録しますが,実体は作成しません。レプリカRDエリアの実体は,ミラーリング機能を使って作成します。このとき,定義情報は実体の作成に反映されません。このため,オリジナルRDエリアの構成を構成変更ユティリティで変更した場合,そのままオリジナルRDエリアの実体をレプリカRDエリアへコピーすると,レプリカRDエリアの定義情報と実体が矛盾し,アクセスできなくなります。したがって,構成変更ユティリティのRDエリアの構成情報複写を使用し,オリジナルRDエリアの定義情報をレプリカRDエリアにコピーして,定義情報と実体に矛盾がないようにする必要があります。
レプリカRDエリアの構成情報を変更し,レプリカRDエリアの実体をオリジナルRDエリアへコピーする場合,RDエリアの構成情報複写でレプリカRDエリアの定義情報をオリジナルRDエリアへコピーします。
(5) どのRDエリアへアクセスするかを考慮した世代番号の検討
アプリケーションやユティリティから複数のRDエリアへアクセスする場合,すべてのRDエリアの世代番号を同じにする必要があります。例えば,次の図に示す例の場合,アプリケーション側で世代番号3を指定しても,オリジナルRDエリアCの世代番号3がないために,カレントRDエリアであるオリジナルRDエリアCへアクセスすることになり,意図しない結果を招き,オリジナルRDエリアの破壊につながるおそれがあります。
前述の図の場合には,世代番号3を割り当てたレプリカRDエリアC-3を用意すれば問題は解決します。このとき,世代番号2に相当するレプリカRDエリアC-2を飛ばしてすぐに世代番号3を割り当てたレプリカRDエリアC-3を用意できます。前述の図のような問題を避けるため,レプリカRDエリアは,アプリケーションやユティリティがアクセスするRDエリアの世代がすべて同じになるように定義・作成してください。また,「レプリカを作成するときのまとまり」で考慮したまとまりのレプリカは,常に,世代をそろえて定義・作成してください。
(6) インナレプリカグループ内データの整合性の保持の検討
インナレプリカグループ内のデータの整合性はユーザが任意の方法で保持する必要があります。
- インナレプリカグループ内のデータの整合性は任意の方法で保持
-
HiRDB Staticizer Optionでは,オリジナルRDエリアとレプリカRDエリア間や,複数のレプリカRDエリア間などの,インナレプリカグループ内のデータの整合性を管理することはできません。オリジナルRDエリア内の表に対して更新処理を実行する場合,更新データをレプリカRDエリアへ,適宜ミラーリング機能を実現するディスクアレイシステム(MRCF機能)やソフトウェア(MirrorDisk/UXなど)で反映させる必要があります。このため,データの整合性を管理する方法を検討する必要があります。
(7) レプリカRDエリアのオープン属性について
レプリカRDエリアのオープン属性は,DEFERにすることを推奨します。
更新可能なオンライン再編成では,レプリカRDエリアはオープン属性にかかわらずカレントデータベース切り替え時に自動的にオープンになります(pdopenコマンドを実行した状態と同じ)。
レプリカRDエリアのオープン属性に関する注意事項を次の表に示します。
オープン属性 |
注意事項 |
備考 |
---|---|---|
INITIAL |
HiRDB起動時にレプリカRDエリアをオープンします。ペアボリュームがペア状態で,レプリカRDエリアの実体へアクセスできない場合は,レプリカRDエリアは障害閉塞します。 |
レプリカ使用時は,RDエリアをアクセス可能状態にし,pdrels -oで閉塞を解除しオープンしてください。 |
INITIALまたは DEFER |
HiRDB稼働中(オンライン中)にペアボリュームの統合・分割を繰り返し実行するためには,RDエリアをコマンド閉塞かつクローズ状態にしたあとでpdpfreshコマンドを実行する必要があります。 |
HiRDBが一度アクセスしたRDエリアをHiRDBから完全に切り離すためには,アクセスしたプロセスがすべて終了している必要があります。 |
SCHEDULE |
pdpfreshコマンドを実行しなくても,HiRDB稼働中(オンライン中)にペアボリュームの統合・分割を繰り返し実行できます。システム共通定義(pdsys)に「pd_lv_mirror_use = Y」を指定すると,すべてのレプリカRDエリアのオープン属性を自動的に「SCHEDULE」属性にできます。ただし,プロセスの開始時と終了時に,RDエリアのオープン・クローズ処理が毎回実行されます。レプリカRDエリアの閉塞解除時,オープン指定(pdrels -o)をするか,または閉塞なしのクローズ状態の場合はオープンコマンド(pdopen)を実行することで,オーバヘッドを削減できます。 |
RDエリアをコマンド閉塞かつクローズ状態にすることで,HiRDBから完全に切り離せます。 |
(8) HiRDB Datareplicatorを使用している場合の注意
HiRDB Datareplicatorを使用してデータ連動している表のレプリカを作成する場合,連動先へ不当なデータが送られないように注意する必要があります。ここでは,レプリカ運用時の更新データ抽出要求のパターンと,パターンごとの抽出対象データについて説明します。
レプリカ運用時の更新データ抽出要求には,次の四つのパターンがあります。
-
更新にカレントRDエリアの表を使用し,検索にカレント以外のRDエリア(サブRDエリア)の表を使用する。
→ つまり,更新したカレントRDエリアのデータを抽出すればよい場合
-
更新にカレントRDエリアの表とサブRDエリアの表の両方を使用する。ただし,連動の対象となるのは常にカレントRDエリアの表だけである。サブRDエリアの更新はテストとして扱う。
→ つまり,常にカレントRDエリアの更新データを抽出すればよい場合
-
カレントRDエリアを検索に使用し,その間,並行して,サブRDエリアの表を更新する(バッチ処理)。そのあと,更新が完了したサブRDエリアのデータをカレントRDエリアに反映する。
→ つまり,カレントRDエリアの更新データとバッチ処理で更新したサブRDエリアのデータの両方を抽出すればよい場合
-
インナレプリカ機能によって,2.と3.の両方を実行する。
→ つまり,カレントRDエリアの更新データと任意のサブRDエリアのデータを選択して抽出すればよい場合
HiRDB Datareplicatorとの組み合わせでは,1.〜3.のパターンに対応できます。4.のパターンには対応できません。
また,HiRDB DatareplicatorのバージョンがHiRDB Staticizer Optionに対応しているかどうかによって,HiRDB Datareplicatorが抽出できるデータの内容が異なります。以降,その違いについて説明します。詳細,およびHiRDB Staticizer Option未対応バージョンについては,マニュアル「HiRDB データ連動機能 HiRDB Datareplicator」を参照してください。
(a) HiRDB Staticizer Option未対応バージョンのHiRDB Datareplicatorを使用している場合
HiRDB Staticizer Option(インナレプリカ機能)に対応していないバージョンのHiRDB Datareplicatorを使用している場合,世代番号を意識した抽出はできません。インナレプリカグループ内のRDエリアにある表に対して更新があったとき,HiRDB Datareplicatorを使用して抽出されるのは,オリジナルRDエリア,レプリカRDエリアを問わず,グループ内のRDエリアのすべての更新データです。これによって,前述の1.と3.の運用パターンに対応できます。
したがって,HiRDB未対応バージョンのHiRDB Datareplicatorを使用する場合は,インナレプリカグループ内の複数のRDエリアを業務で使用するデータ以外で更新しないようにしてください。
(b) HiRDB Staticizer Option対応バージョンのHiRDB Datareplicatorを使用している場合
インナレプリカグループ内のRDエリアにある表に対して更新があったとき,HiRDB Datareplicatorを使用して抽出されるのは,カレントRDエリアとして設定されているRDエリアの更新データです。通常,カレントRDエリアは,オリジナルRDエリアに設定されています。これによって,前述の1.と2.の運用パターンに対応できます。また,カレントRDエリアに対する更新だけを抽出するか,すべての更新を抽出するかを指定することができます。すべての更新を抽出する場合,前述の1.と3.の運用パターンに対応できます。詳細はマニュアル「HiRDB データ連動機能 HiRDB Datareplicator」を参照してください。
HiRDB Datareplicatorでは,カレントRDエリア以外の特定の世代番号のRDエリア内の更新データを抽出することはできません。インナレプリカグループ内の複数のRDエリアを業務で使用するデータ以外で更新する場合は,必ず,HiRDB Staticizer Option(インナレプリカ機能)に対応しているバージョンのHiRDB Datareplicatorを使用してください。
HiRDB Datareplicatorの抽出可能データの一覧を次の表に示します。
項番 |
抽出対象データと抽出方法 |
HiRDB Datareplicatorのバージョン |
||
---|---|---|---|---|
インナレプリカ機能未対応バージョン |
インナレプリカ機能 対応バージョン |
|||
全データ抽出指定 |
カレントRDエリアのデータの抽出指定 |
|||
1 |
インナレプリカグループ内のすべての更新データを抽出する |
○ |
○ |
× |
2 |
カレントRDエリアの更新データだけを選択して抽出する |
× |
× |
○ |
3 |
カレントRDエリアの更新データと任意のサブRDエリアの更新データを選択して抽出する |
× |
× |
× |
(凡例)○:抽出できます。 ×:抽出できません。
(9) 順序数生成子を使用している場合の注意
順序数生成子格納RDエリアに対しては,インナレプリカ機能を適用できません。
(10) ディクショナリ表のメンテナンスについて
マニュアル「HiRDB システム導入・設計ガイド」の「HiRDBのバージョンアップ」の「バージョンアップ時の留意事項」を参照し,必要に応じてディクショナリ表のメンテナンスをしてください。