8.13.1 規則
- 〈この項の構成〉
-
(1) ユティリティの実行について
-
pdrorgは,HiRDBが稼働中のときだけ実行できます。
-
pdrorgは,シングルサーバ,又はシステムマネジャがあるサーバマシンで実行してください。
(2) ユティリティの実行可否について
再編成する表,インデクス,及びLOB列が格納されているRDエリアのオープン属性,RDエリアの状態によって,pdrorgの実行可否が変わります。pdrorgの実行可否については,「コマンド実行時のRDエリアの状態」を参照してください。
また,ディクショナリ表を再編成する場合は,ディクショナリ表が格納されているRDエリアを,pdholdコマンドで閉塞状態にしてください。
(3) ユティリティの最大同時実行数
pdrorgの最大同時実行数は,システム共通定義のpd_utl_exec_modeオペランドの指定値によって異なります。
- pd_utl_exec_mode=0の場合:
-
最大同時実行数は32です。
- pd_utl_exec_mode=1の場合:
-
最大同時実行数はpd_max_usersオペランドの指定値です。
なお,pdreclaim及びpdpgbfonは内部でpdrorgを呼び出しているため,pdreclaim及びpdpgbfon実行中はpdrorgの最大同時実行数は少なくなります。例えば,pd_utl_exec_mode=0の場合,pdrorgの最大同時実行数は32ですが,pdreclaimが10個起動中のときは,pdrorgの最大同時実行数は22となります。
(4) ユティリティで処理中の表,インデクスについて
-
pdrorgで処理中の表やインデクスは,対象資源に対して排他を掛けるため,ほかのUAPやユティリティからアクセスできません。なお,-k unldの場合は,option文のunldenqオペランドの指定によって,アクセス可否が変わります。詳細については,「option文(データ処理に関する情報の記述)」を参照してください。
-
再編成する表が格納されているRDエリアをpdholdコマンドで閉塞しておけば,UAPが閉塞エラーとなるため,UAPの実行によってユティリティの実行が排他待ちになることや,ユティリティの実行によってUAPの実行が排他待ちになることを防止できます。pdrorgの排他制御モードについては,「ユティリティの排他制御モード」を参照してください。
-
再編成中の表やインデクスに対して,定義系SQLは実行しないでください。実行すると,pdrorgが異常終了します。スキーマ単位の再編成をしている場合は,該当スキーマが持つすべての表とインデクスが対象となります。再編成中の定義系SQL実行を防止するためには,再編成する表,及びインデクスを格納したRDエリアを,pdholdコマンドで閉塞状態にしておく必要があります。なお,再編成中に同一RDエリア内の別の表を参照する場合には,pdholdコマンドで参照可能な閉塞状態にしておきます。
-
定義系SQLを実行中のRDエリアにある表やインデクスに対して,データベース作成ユティリティを実行すると,排他待ちとなります。
-
再編成実行中の表に対して,定義変更や,UAP,他ユティリティを同時に実行しないでください。実行すると,UAP,他ユティリティが排他待ちエラーとなります。また,コマンドなどでアンロードとリロードの処理を分けて実行する場合,表のデータが0件になったり,更新結果が無効になったりします。
(5) 分割キーのレンジ変更について
リロード処理の前に分割キーのレンジを変更したとき,再定義したレンジの範囲にアンロードしたデータが納まらない場合,リロード中にそのデータを見付けた時点でエラーとなり,処理を終了します。この場合,アンロードしたデータがすべて納まるように,分割キーのレンジを定義し直し,再度リロード処理をしてください。
(6) データ連動の対象となる抽出側データべースに対するユティリティを実行時のログ取得モードについて
データ連動の対象となる抽出側データべースに対してpdrorgを実行する場合,-lオプションにはn又はpを指定してください(ログレスモード又は更新前ログ取得モードで実行してください)。ログ取得モードで実行した場合,抽出側データべースに対して実行された一部の更新情報だけが反映側データべースに転送されるため,抽出側と反映側のデータべースの内容が不整合になります。
(7) DECIMAL型の符号正規化機能について
pdrorgでは,DECIMAL型の符号正規化機能の使用有無に関係なく,DECIMAL型の符号部の正規化はしません。したがって,DECIMAL型の符号正規化機能を使用しないHiRDBシステムで作成したアンロードデータファイルを使用して,DECIMAL型の符号正規化機能を使用するHiRDBシステムへのリロードはできません。
データベース中の正規化されていないDECIMAL型の符号部を正規化する場合は,-Wオプション指定のアンロードデータファイルを作成し,データベース作成ユティリティでデータを格納し直してください。DECIMAL型の符号正規化機能については,マニュアル「HiRDB Version 9 システム運用ガイド」を参照してください。
(8) インデクス作成時のファイルの出力先について
インデクス作成時,制御情報ファイルでファイルの出力先を指定しない場合,次の表に示すディレクトリにファイルを出力します。
制御文※1の指定 |
システム定義のpd_tmp_directoryオペランドの指定 |
||
---|---|---|---|
あり |
なし |
||
環境変数TMP※2の指定 |
|||
あり |
なし |
||
あり |
制御文に指定したディレクトリ又はファイル |
||
なし |
pd_tmp_directoryに指定したディレクトリ |
TMPに指定したディレクトリ |
%PDDIR%\tmpディレクトリ |
(9) インデクス情報ファイルの出力先について
pdrorgの処理内容と制御文の指定によって,インデクス情報ファイルの出力先が変わります。インデクス情報ファイルの出力先を次の表に示します。
pdrorgの処理内容 |
制御文 |
インデクス情報ファイルの出力先 |
||
---|---|---|---|---|
index文 |
idxname文 |
idxwork文 |
||
-k rorg, -k reld, -k ixmk |
あり※ |
× |
− |
index文で指定したインデクス情報ファイル |
なし |
× |
あり |
idxwork文で指定したディレクトリ |
|
なし |
× |
なし |
||
-k ixrc, -k ixor |
× |
あり |
あり |
idxwork文で指定したディレクトリ |
× |
あり |
なし |
||
あり |
× |
− |
index文で指定したインデクス情報ファイル |
- (凡例)
-
×:指定できません。
−:指定の有無は,インデクス情報ファイルの出力先に関係しません。
- 注※
-
横分割表の場合は,指定したRDエリアだけが対象であるため,指定していないRDエリアについてはindex文なしの項目が該当します。
(10) リバランス表の再編成
リバランス表にRDエリアを追加した場合,そのリバランス表に対してpdrbalを実行(リターンコード=0)していないと,追加したRDエリアの再編成(RDエリア単位の再編成)はできません。
リバランス表にRDエリアを追加した場合,追加したRDエリアに対するpdrorgの実行可否を次の表に示します。
-kオプション |
表の状態 |
|||||
---|---|---|---|---|---|---|
RDエリアの追加〜pdrbal実行前 |
pdrbal途中※ (リターンコード4) |
pdrbal完了後 (リターンコード0) |
||||
既存 |
追加 |
既存 |
追加 |
|||
unld |
○ |
× |
○ |
○ |
○ |
|
rorg,reld |
表単位 |
○ |
× |
○※ |
○※ |
○ |
RDエリア単位 |
○ |
× |
× |
× |
○ |
|
ixmk |
○ |
○ |
○ |
○ |
○ |
|
ixrc |
○ |
○ |
○ |
○ |
○ |
|
ixor |
○ |
○ |
○ |
○ |
○ |
- (凡例)
-
既存:表定義(CREATE TABLE)で指定している既存のRDエリア
追加:ALTER TABLE ADD RDAREAで追加したRDエリア
○:pdrorgを実行できます。
×:pdrorgは実行できません。
- 注※
-
リバランス途中にリロードする場合は,-gオプションを指定してください。また,LOB列,及びLOB属性の抽象データ型列がある場合は,同時に-jオプションも指定してください。-gオプションを指定して再編成をすると,データの再配置はされますが,そのリバランス表はまだリバランス完了となっていないため,リロード後に必ずpdrbalを実行してリターンコード=0になることを確認してください。
表をアンロードした後に,その表にRDエリアを追加し,リロードする場合の手順を次に示します。
-
pdrorgを実行(-k unld)
-
ALTER TABLE ADD RDAREAでRDエリアを追加
-
PURGE TABLEで全行削除
-
pdrbalを実行
-
pdrorgを実行(-k reld)
上記の手順を実行する場合,pdrorgには必ず-gオプションを指定してください。-gオプションを指定しないとエラーとなります。また,LOB列又はLOB属性の抽象データ型列があるリバランス表の場合は,同時に-jオプションも指定してください。
(11) 更新凍結状態のRDエリアに対する処理
更新凍結状態のRDエリアにある表に対して,-k rorg(再編成)又はreld(リロード)を実行する場合,ユーザLOB用RDエリアの管理領域を更新できないため,エラーとなります。また,LOB列構成基表だけを再編成又はリロードする場合も,同様にエラーとなります。
(12) SEGMENT REUSE指定の表に対するリロード
SEGMENT REUSE指定の表にリロードする場合,SEGMENT REUSEの指定は無効となります。
(13) リバランス機能を持つハッシュ関数で横分割された表について
リバランス機能を持つハッシュ関数でFIXハッシュ分割した表を再編成する場合に,アンロードとリロードの間に分割条件を変更すると,表格納RDエリアに空きページがあっても,空きセグメントがないためにRDエリアの容量が不足することがあります。これは,格納条件の変更によって,アンロードした時に格納されていたセグメントとは別のセグメントにリロードする必要が生じたけれど,新たなセグメントを確保できないためです。この場合,リロードの再実行前にRDエリアの拡張をしてください。
(14) 32bit版と64bit版のHiRDBのアンロードデータファイルの互換性について
32bit版,又は64bit版のHiRDBでアンロードしたアンロードデータファイルは,お互いのbitモードのHiRDBでリロードし,データを移行できます。移行できる条件は,同一のbitモードのHiRDB間で移行できる条件と同じです。
(15) 一時表に対するpdrorgの実行
一時表に対して,pdrorgは実行できません。-tオプションに一時表を指定して実行すると,pdrorgはKFPL15231-Eメッセージを出力して,エラー終了します。スキーマ単位の再編成(-tオプションにallを指定)の場合,pdrorgはスキーマに定義された一時表の処理をスキップします。