4.3.1 更新可能なオンライン再編成の準備
更新可能なオンライン再編成の準備手順とその例を示します。
(1) 更新可能なオンライン再編成の準備手順
更新可能なオンライン再編成の準備には,RDエリアの物理配置の検討,各種定義の設定,ペアボリュームの定義などを含みます。これらの作業は更新可能なオンライン再編成のたびに実施する必要はありません。これらの作業は一度しか実施しません。
更新可能なオンライン再編成の準備は次の図に示す手順で行います。
-
RDエリアの物理配置の検討
更新可能なオンライン再編成を実施するRDエリアのボリューム内の物理配置を検討します。検討のポイントを次に示します。
- レプリカ作成ガイドラインを満たしているか
-
更新可能なオンライン再編成ではインナレプリカ機能を使用するため,レプリカ作成ガイドラインも考慮する必要があります。インナレプリカ機能に関する考慮点については,「運用前に考慮すること」を参照してください。
- 同じボリュームにインナレプリカ機能単独で使用されるRDエリアがないか
-
更新可能なオンライン再編成では,マスタDBとレプリカDBが一時的に切り替わるため,それとは別のレプリカを使用する作業(インナレプリカ機能を使うが更新可能なオンライン再編成を行わないRDエリア)に運用上悪い影響がないかを考慮する必要があります。
-
システム定義の設定
HiRDBを停止して,システム定義を設定します。更新可能なオンライン再編成を行うためには,次に示すシステム共通定義オペランドを設定する必要があります。オペランドに指定できる値の詳細については,マニュアル「HiRDB システム定義」を参照してください。システム定義ファイルのパーミッションは,ファイルの所有者(HiRDB管理者)にだけ,読み込み権限および書き込み権限を持たせるように設定してください。
- pd_max_reflect_process_count
-
追い付き反映コマンド(pdorend)で,HiRDBが保証するpdorend追い付き反映プロセスの同時実行数です。HiRDB/シングルサーバの場合はシステム全体,HiRDB/パラレルサーバの場合はFES一つ当たりの数で指定します。
このオペランドを指定するときの留意事項については「pd_max_reflect_process_countオペランドの留意事項と見積もり」を参照してください。
- pd_log_org_reflected_logpoint
-
追い付き反映処理が完了したあと,システムログファイルの状態を変更するかを指定します。これは,障害が発生したときにどのように対処したいかによって設定が異なります。設定値による障害対策方法の違いについては,「システムログとオペランドの設定」を参照してください。
通常は,keepを設定することをお勧めします。
- pd_log_org_no_standby_file_opr
-
すべてのシステムログファイルがオンライン再編成上書き禁止状態の場合に,スワップが発生したときのHiRDBの処理を指定します。これは,障害が発生したときにどのように対処したいかによって設定が異なります。設定値による障害対策方法の違いについては,「システムログとオペランドの設定」を参照してください。
通常は,stopを設定することをお勧めします。
-
関連RDエリアの確認(pdrdrefls)
RDエリアに対して更新可能なオンライン再編成を実施する場合,同時にカレントデータベース切り替えの実施対象として指定しなければいけないRDエリア(関連RDエリア)を確認します。
すべての関連RDエリアに対して同じタイミングでカレントデータベース切り替えを実施しないと,オンライン業務のアクセスがエラーになります。また,制約種別指定オプション(-cオプション)を指定し,制約関係にある表の関連RDエリアも入力情報へ含めることをお勧めします。
RDエリア指定の場合
このコマンドの出力結果は,運用時に更新可能なオンライン再編成の入力情報として使用できます※。
- 注※
-
入力情報として使用できるのは,出力結果のRDエリア数が128個以下の場合です。129個以上ある場合は,出力された複数のRDエリアをグループ化して128個以下にしてください。複数のRDエリアのグループ化(RDエリア名一括指定)については,マニュアル「HiRDB コマンドリファレンス」を参照してください。
表指定の場合
このコマンドの出力結果を,運用時に更新可能なオンライン再編成の入力情報として使用する必要があります。
-
レプリカRDエリアの定義
構成変更ユティリティ(pdmod)で,HiRDBファイルシステム領域の複製世代登録定義(create generation)とレプリカRDエリア定義(replicate rdarea)を行います。更新可能なオンライン再編成を行うRDエリア(関連RDエリア含む)には,すべてレプリカRDエリアの定義を行ってください。
なお,レプリカRDエリアが使用するグローバルバッファには,通常オリジナルRDエリアと同じものを割り当てます。メモリ資源に余裕がある場合は,オリジナルRDエリアと同じ面数のグローバルバッファを用意して,競合しないようにすることをお勧めします。レプリカRDエリアに別のグローバルバッファを割り当てるためには,HiRDBを正常停止する必要があります。
-
適用条件の確認(pdorcheck)
更新可能なオンライン再編成が実施できるRDエリアかどうかを確認します。該当RDエリア内に更新可能なオンライン再編成が実施できない表があると,追い付き反映処理がエラーとなり,業務をオリジナルRDエリアに戻せません。
-
ペアボリュームの定義
更新可能なオンライン再編成を実施するマスタDBとレプリカRDエリアが定義されているボリュームを二重化します。
操作方法については,使用するミラーリング機能のマニュアルを参照してください。日立ディスクアレイシステムを使用している場合は,まず「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。
-
追い付き状態管理表の作成(pdorcreate)
追い付き反映処理をするためには,オリジナルRDエリアに反映処理を管理するための表(追い付き状態管理表)を作成する必要があります。
追い付き状態管理表は,更新可能なオンライン再編成の対象RDエリアとは別のRDエリアに作成します。追い付き反映処理を行うサーバごとに追い付き状態管理表を格納するRDエリアを用意して,追い付き状態管理表を作成することをお勧めします。
なお,更新可能なオンライン再編成の対象RDエリアと同じRDエリアに追い付き状態管理表を作成すると,追い付き反映コマンドを正常に実行できません。
(2) 更新可能なオンライン再編成の準備例
更新可能なオンライン再編成の準備例を示します。ここで更新可能なオンライン再編成を行うRDエリアの構成は次の図のとおりになります。再編成するRDエリアは,RDTBLとします。
-
RDエリアの物理配置の検討
関連RDエリアの物理配置を決定します。
-
システム定義の設定
- HiRDBの停止
-
HiRDBを正常停止します。
pdstop
- システム定義の追加
-
システム共通定義に次の定義を追加します。
pd_max_reflect_process_count = 8 pd_log_org_reflected_logpoint = keep pd_log_org_no_standby_file_opr = stop
- HiRDBの開始
-
HiRDBを正常開始します。
pdstart
-
関連RDエリアの確認(pdrdrefls)
再編成したいRDエリア「RDTBL」または表「T1」の関連RDエリアを確認します。このとき,出力結果をデータベース静止化(pdorbegin)実行時の入力情報として利用できるよう「,」区切りで出力するよう指定します。
RDエリア指定の場合
pdrdrefls -e org -r RDTBL -l -d ',' -c ref
- [引数の説明]
-
-e:関連の種別を指定します。
-r:マスタDBにある再編成する表格納RDエリアの名称を指定します。
-l:出力情報の各情報を改行しないで表示することを指定します。
-d:関連RDエリアの区切り文字を指定します。
-c:参照制約関係にある表の関連RDエリア名を,含めて表示する場合に指定します。
表指定の場合
pdrdrefls -e org -t T1 -l -d ',' -c ref
- [引数の説明]
-
-e:関連の種別を指定します。
-t:表識別子を指定します。
-l:出力情報の各情報を改行しないで表示することを指定します。
-d:関連RDエリアの区切り文字を指定します。
-c:参照制約関係にある表の関連RDエリア名を,含めて表示する場合に指定します。
- 実行結果が,次のように出力された場合,RDTBLの関連RDエリアは,RDIDXおよびRDLOBということになります。
"RDTBL","RDIDX","RDLOB"
-
レプリカRDエリアの定義
- HiRDBファイルシステム領域の複製世代登録
-
HiRDBファイルシステム領域の複製世代登録を行います。
pdmod -a /usr/pdmod/crtgen
制御文crtgenの内容は次のとおりです。
create generation for HiRDB file system area "/hirdb/area1" …(a) server name bes1 …(b) generation number 1 …(c) reproduce "/hirdb/area"; …(d)
(a) 複製するHiRDBファイルシステム領域名を指定します。
(b) サーバ名称を指定します。
(c) 世代番号を指定します。
(d) マスタのHiRDBファイルシステム領域名を指定します。
- レプリカRDエリアの定義
-
レプリカRDエリアを定義します。
pdmod -a /usr/pdmod/reparea
制御文repareaの内容は次のとおりです。
replicate rdarea RDTBL_1 globalbuffer buftbl01 …(a) reproduce RDTBL generation number 1; …(b) replicate rdarea RDIDX_1 globalbuffer buftbl02 …(a) reproduce RDIDX generation number 1; …(b) replicate rdarea RDLOB_1 globalbuffer buftbl03 …(a) reproduce RDLOB generation number 1; …(b)
(a) 作成するレプリカRDエリア名とそれに割り当てるグローバルバッファを指定※します。
(b) 複製元のRDエリア名とレプリカの世代番号を指定します。
- 注※
-
次回のHiRDB開始以降は,ここで指定したグローバルバッファを割り当てることはできません。したがって,この運用後のHiRDB終了時にはシステム共通定義のpdbufferオペランドでグローバルバッファを割り当てる必要があります。
-
適用条件の確認(pdorcheck)
RDTBLに更新可能なオンライン再編成を適用できるか確認します。
pdorcheck -r "RDTBL","RDIDX","RDLOB"
- [引数の説明]
-
-r:マスタDBにある再編成する表格納RDエリアの名称を指定します。
-
ペアボリュームの定義
マスタDBのボリューム(/hirdb/area)への更新がレプリカDBのボリューム(/hirdb/area1)に反映されるように,ボリュームを二重化します。
操作方法については,使用するミラーリング機能のマニュアルを参照してください。日立ディスクアレイシステムを使用している場合は,まず「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。
-
追い付き状態管理表の作成(pdorcreate)
追い付き状態管理表を作成します。
pdorcreate -o RDRMT
- [引数の説明]
-
-o:追い付き状態管理表を作成するRDエリアを指定します。