10.6 注意事項
-
pdrbalのリターンコードを次に示します。
0:正常終了(リバランス完了)
4:正常終了(リバランスの途中)
8:異常終了
-
リバランス中の表に対して定義系SQLは実行できません。
-
占有モード(-k exclusive)の場合,リバランス中の表やインデクスは,ほかのUAPやユティリティからアクセスできません。
-
リバランス表を基にリストを作成している場合,リバランス中はリストを使用した検索結果が不正になるときがあります。この場合,リストを使用して検索する前に,リストを再作成してください。
-
共有モードでのリバランス中に,UAPで行識別子を使用した検索,更新,又は削除をする場合,行識別子の取得と実際のデータ操作との間にコミットを入れると,結果不正になることがあります。
-
リバランス表に表格納用RDエリアの数と一致しないインデクス格納用RDエリアがある場合(サーバ内分割していない非分割キーインデクスの場合),pdrbalは実行できません。このような表をリバランスするためには,サーバ内分割していない非分割キーインデクスをいったん削除し,pdrbalを実行してください。そして,リバランス終了後に,再度インデクスを定義してください。なお,このようなインデクスはリバランス中には定義できません。リバランス表に非分割キーインデクスを定義する場合は,同一サーバ内の表格納用RDエリアと同じ数のインデクス格納用RDエリアに格納するようにしてください。
-
pdrbalが出力するデータベースの更新ログは,HiRDB Datareplicatorでのデータ連動機能の対象とはなりません。
-
リバランスをするデータのインデクス削除,作成では,-nオプションの指定に関係なく,必ずグローバルバッファを使用します。そのため,十分に余裕のあるグローバルバッファを割り当てた環境でpdrbalを実行してください。特に,データの移動元となるRDエリア側では,インデクスごとにグローバルバッファを割り当てると効果的です。グローバルバッファに余裕がない場合,バッファ競合が発生して入出力BUSY状態となり,性能が悪くなります。
-
更新凍結状態のユーザLOB用RDエリアを含む表をリバランスすると,pdrbalがエラー終了します。
-
pdrbalは,リバランス初期化処理時及びリバランス完了処理時にSQLオブジェクトが無効となっている,データベースにあるすべての手続き,関数をリコンパイルします。そのため,SQLオブジェクトが無効で,かつリコンパイルができない手続き,関数がデータベースにある場合,pdrbalがリコンパイルできなくなるため,エラーとなります。エラーとなった場合,エラーメッセージを確認し,対策してからALTER PROCEDURE又はALTER ROUTINEで手続き,関数をリコンパイルしてください(pdrbalを再実行しても,リコンパイルはされません)。
SQLオブジェクトが無効で,かつリコンパイルできない手続き,関数をpdrbal実行前に調べたい場合,SQL Executerを使用します。SQLオブジェクトが無効で,かつリコンパイルできない手続き,関数の調査方法を次の図に示します。
図10‒7 SQLオブジェクトが無効で,かつリコンパイルできない手続き,関数の調査方法 -
pdrbalで使用するファイルの媒体と1ファイル2ギガバイト以上のファイルの利用可否を次の表に示します。
表10‒11 pdrbalで使用するファイルの媒体と1ファイル2ギガバイト以上のファイルの利用可否 ファイル
媒体
1ファイル2ギガバイト以上のファイルの利用可否
ファイル
固定長又は可変長ブロックテープ
制御情報ファイル
○
×
○
インデクス情報ファイル
○
×
○
ソート用ワークファイル
○
×
○
処理結果ファイル
○
×
○
- (凡例)
-
○:利用できます。
×:利用できません。
-
リバランスする表が改竄防止表で,かつその改竄防止表がデータ未完状態の場合,pdrbalは実行できません。
-
HiRDB/パラレルサーバの場合で,かつ共有モードでpdrbalを実行する場合,回復不要FESを適用していないフロントエンドサーバはすべて稼働している必要があります。
-
表が検査保留状態の場合(ディクショナリ表SQL_TABLESのCHECK_PEND列又はCHECK_PEND2列の値がC(検査保留状態)),pdrbalは実行できません。
-
pdntenvコマンドで文字コードとしてutf-8,又はutf-8_ivsを選択した場合,pdrbalの入力ファイルには,BOMを持つファイルを使用できることがあります。pdrbalでのBOMを持つファイルの使用可否を次の表に示します。なお,pdrbalの入力ファイルとしてBOMを持つファイルを使用しても,BOMは読み飛ばされます。また,pdrbalで出力されるファイルにはBOMは付きません。
表10‒12 pdrbalでのBOMを持つファイルの使用可否(UTF-8の場合) 制御文
入力ファイル
BOMを持つファイルの使用
−
制御情報ファイル
○
index
インデクス情報ファイル
×
- (凡例)
-
○:使用できます。
×:使用できません。
−:該当しません。
-
pdrbalはリバランス対象表の分割数によってハッシングします。そのため,表格納用RDエリアに重複したRDエリアが存在すると,重複したRDエリアに行データが偏って格納される場合があります。
-
制御文で指定しない場合のファイル出力先ディレクトリ
pdrbal実行時,制御情報ファイルでファイル出力先を指定しない場合,次の表に示すディレクトリにファイルを出力します。
表10‒13 pdrbalがファイルを出力するディレクトリ 制御文※1の指定
システム定義のpd_tmp_directoryオペランドの指定
あり
なし
環境変数TMP※2の指定
あり
なし
あり
制御文に指定したディレクトリ又はファイル
なし
pd_tmp_directoryに指定したディレクトリ
TMPに指定したディレクトリ
%PDDIR%\tmpディレクトリ