スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(Windows(R)用)

[目次][索引][前へ][次へ]

5.11 規則及び注意事項

<この節の構成>
(1) 規則
(2) 注意事項
(3) 特定機能使用時のオプション,及び制御文の指定可否
(4) BOMを持つファイルの使用
(5) 制御文で指定しない場合のファイル出力先ディレクトリ

(1) 規則

(a) ユティリティの実行について
(b) ユティリティの実行可否について

データロードする表,インデクス,及びLOB列が格納されているRDエリアのオープン属性,RDエリアの状態によって,pdloadの実行可否が変わります。pdloadの実行可否については,「付録C コマンド実行時のRDエリアの状態」を参照してください。

(c) ユティリティの最大同時実行数

pdloadの最大同時実行数は,システム共通定義のpd_utl_exec_modeオペランドの指定値によって異なります。

pd_utl_exec_mode=0の場合:
最大同時実行数は32です。

pd_utl_exec_mode=1の場合:
最大同時実行数はpd_max_usersオペランドの指定値です。
(d) ユティリティで処理中の表,インデクスについて
(e) CREATE TABLE,CREATE INDEXのPCTFREEとの関係
(f) データロード中のシンクポイントについて

通常のデータロード時はシンクポイントを取得しません。このため,データロード中にほかのUAPなどを実行してシステム障害が発生した場合など,再開始に要する時間が増大するため,できるだけデータロードとほかのUAPなどは同時に実行しないようにしてください。

同期点指定のデータロードの場合は,任意の行数単位にシンクポイントを取得できます。このため,通常のシンクポイントを取得しないデータロードに比べると,異常終了時の再開始に要する時間は短くなります。

(g) 各国文字データのチェックについて

各国文字データとして格納する入力データの値については,データがマルチバイトコードかどうかのチェックはしません。

(h) DECIMAL型の符号正規化機能について

DECIMAL型の符号正規化機能を使用している場合,DECIMAL型の符号部は次のように扱われます。DECIMAL型の符号正規化機能については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

HiRDBでの,DECIMAL型の符号部の仕様を次に示します。

符号部 意味
X'C' 正の値を示しています。
X'D' 負の値を示しています。
X'F' 正の値を示しています。

DECIMAL型の符号正規化機能を使用すると,データを挿入したときにDECIMAL型の符号部を次の規則に従って変換します。

このように,0データの正規化を実施すると,−0のデータが+0に変換されます。

なお,文字データを変換するDAT形式の入力データファイルの場合は,システム定義の指定に関係なく,正規化された値(正の値,0データの場合は符号部がX'C',又は負の値の場合は符号部がX'D')を格納します。

DECIMAL型の符号正規化機能を使用した場合,エラー情報ファイルに出力されるエラーデータのダンプイメージリスト,及びエラーデータファイルに出力される入力データ中のDECIMAL列は,pdloadがエラーを検知した列までは正規化された値で出力されます。

(i) 抽象データ型がある表へのデータロード

プラグインが提供する抽象データ型列がある表の場合は,コンストラクタ関数を呼び出して,該当する列へ格納する値を生成しデータロードできます。ただし,コンストラクタ関数が共用ライブラリで作成されていない場合はデータロードできません。

ユーザが定義した抽象データ型列がある表の場合は,該当する列へ格納する値の生成ができないため,データロードできません。

抽象データ型列がある表にバイナリ形式の入力データファイルを使ってデータロードする場合は,UOCを利用したデータロードはできません。

(j) リバランス表へのデータロード

リバランス表にRDエリアを追加した場合,そのリバランス表に対してpdrbalを実行(リターンコード=0)していないと,追加したRDエリアへのデータロード(RDエリア単位のデータロード)はできません。

また,フレキシブルハッシュ分割表にデータロードする場合,ハッシュグループを無視して格納するため,pdrbalで再配置するデータがハッシュキー値とリンクしません。

(k) 外部表へのデータロード

外部表に対してデータロードはできません。

(l) 改竄防止表へのデータロード

改竄防止表にデータロードする場合,次の注意事項があります。

(m) トリガが定義されている表へのデータロード

pdloadの実行でトリガは動作しません。pdloadを実行する前に,表に定義されているトリガ定義の内容を確認してください。

(2) 注意事項

(a) ユティリティ実行後の結果について

pdloadの結果は,pddbstで確認できます(UAPの実行,又はpdrorgでのアンロードでも確認できます)。また,pdloadの処理が終了した場合は,リターンコードが返ります。pdloadのリターンコードを表5-52に示します。また,監査証跡表にpdloadを実行した場合のリターンコードを表5-53に示します。

表5-52 pdloadのリターンコード

リターンコード 意味 対処方法
0 正常終了。
入力データファイル中のすべてのデータをデータロードしました。
なし。
正常終了。
入力データファイル中のすべてのデータをデータロードした後ユティリティプロセス終了処理の通信で通信障害等による電文無応答が発生しました。
なし。
正常終了。
入力データファイルの全データを,分割入力データファイルに出力しました。
分割入力データファイルを使用してRDエリア単位にデータロードをしてください。
4 入力データのエラー。
入力データファイル中の一部のデータにエラーがあるため,当該データの処理をスキップしました。
追加モード(-dオプションを指定しない場合):
入力データファイルのエラーデータを修正してから,修正したデータだけ,データロードを再実行してください。
作成モード(-dオプションを指定した場合):
入力データファイルのエラーデータを修正してから,データロードを再実行してください。
入力データのエラー。
入力データファイル中の正常なデータは分割入力データファイルに出力しましたが,一部のエラーデータは分割入力データファイルに出力していません(-e オプション指定時は,エラーデータ検知時点まで分割入力データファイルに出力)。
エラー情報ファイルを参照し,入力データファイルのエラーデータを修正してから,再度分割入力データファイルを作成してください。
8 入力データエラー。
option文のdataerrオペランドを指定した場合は,入力データファイル中にエラーがあるため,データロード処理をロールバックしました。
エラーの入力データを修正して,再度データロードを実行してください。
キー重複エラー。
インデクスの一括作成中にキー重複エラーを検知しました。
バックアップからDBを回復して,エラーの入力データを修正してください。その後,再度データロードを実行してください。
異常終了。
エラーが発生したため,データロードの処理を途中で終了しました。
エラー原因を取り除いて,再度データロードを実行してください。
異常終了。
入力データファイルのデータを,分割入力データファイルに出力できませんでした。
エラーメッセージを参照してエラーの原因を取り除いて,再度分割入力データファイルを作成してください。
異常終了。
予期せぬエラーが発生しました。
再実行が必要かどうか判断を行って,データロードを実行してください。※1
255 データロードを強制停止。
pdloadプロセスをpdkillコマンドで強制停止しました。
再実行が必要かどうか判断を行って,データロードを実行してください。※1
1 データロードを強制停止。
pdloadプロセスがアボートしました。
再実行が必要かどうか判断を行って,データロードを実行してください。※1
上記以外※2 異常終了。
pdloadプロセスが停止(消滅)しました(タスクマネージャによる終了等)。
再実行が必要かどうか判断を行って,データロードを実行してください。※1

注※1
イベントログ,又はメッセージログファイルの内容を参照して,エラー要因を取り除き,マニュアル「HiRDB Version 8 コマンドリファレンス」の「エラー時のデータベースの状態とその回復方法」に従って対処ください。

注※2
OS(Windows)が設定したリターンコードが返却されます。

表5-53 pdloadのリターンコード(監査証跡表の場合)

リターンコード 意味 対処方法
0 正常終了。
srcuoc文に指定した監査証跡ファイルの全世代のデータを監査証跡表にデータロードしました。
なし。
正常終了。
srcuoc文に指定した監査証跡ファイルの全世代のデータを監査証跡表にデータロードした後,ユティリティプロセス終了処理の通信で通信障害等による電文無応答が発生しました。
なし。
4 警告終了。
srcuoc文に指定した監査証跡ファイルの中で,データロード待ち状態のファイルは監査証跡表にデータロードしましたが,閉塞又はデータロード済み状態のファイルはデータロードの処理をスキップしました。
監査証跡ファイルが閉塞状態でスキップした場合,閉塞の原因を取り除いて,再度データロードを実行してください。
監査証跡ファイルがデータロード済み状態でスキップした場合,通常はデータロード済みのため対処は不要です。あえてデータロードする必要があるときは,srcuoc文のmodeオペランドにforceを指定して再度実行してください。
8 異常終了。
エラーが発生したため,データロードの処理を途中で終了しました。
エラー原因を取り除いて,再度データロードを実行してください。
異常終了。
予期せぬエラーが発生しました。
再実行が必要かどうか判断を行って,データロードを実行してください。※1
255 データロードを強制停止。
pdloadプロセスをpdkillコマンドで強制停止しました。
再実行が必要かどうか判断を行って,データロードを実行してください。※1
1 データロードを強制停止。
pdloadプロセスがアボートしました。
再実行が必要かどうか判断を行って,データロードを実行してください。※1
上記以外※2 異常終了。
pdloadプロセスが停止(消滅)しました(タスクマネージャによる終了等)。
再実行が必要かどうか判断を行って,データロードを実行してください。※1

注※1
イベントログ,又はメッセージログファイルの内容を参照して,エラー要因を取り除き,マニュアル「HiRDB Version 8 コマンドリファレンス」の「エラー時のデータベースの状態とその回復方法」に従って対処ください。

注※2
OS(Windows)が設定したリターンコードが返却されます。
(b) ユティリティ実行中の処理の中断について

pdload実行中に処理を中断したい場合は,pdcancelコマンドを使用します。なお,pdloadが無応答障害(定例ジョブなど,一定時間でデータロード処理が終わるはずなのに終わらない)と判断して強制終了させる場合は,pdlsコマンド(-d rpc -a指定)の表示結果をリダイレクトでファイルに取得してください。

この場合,作成モード(-dオプション指定)でpdloadを実行しているときは,表の格納データはすべて削除されます。また,追加モード(-dオプションなし)でpdloadを実行しているときは,処理がロールバックされます。

再編成時期予測機能を使用している場合,pdloadをシグナル割り込みで強制終了すると,運用履歴表が更新できません。再編成時期予測機能を使用している場合にpdloadを終了させるときは,必ずpdcancelコマンドを使用してください。

(c) LOB列構成基表及びLOB列のRDエリアとバッファなどの資源について

LOB列がある表にデータロードする場合,LOB列構成基表,及びLOB列のRDエリアとバッファなどの資源は,すべて準備しておく必要があります。LOB列構成基表だけを作成する場合も同様です。

(d) ユティリティ実行時に使用できるファイルの媒体について

pdload実行時に使用できるファイルの媒体を次に示します。

ファイル ファイル 固定長ブロックテープ 可変長ブロックテープ
入力データファイル
制御情報ファイル × ×
列構成情報ファイル × ×
ナル値・関数情報ファイル × ×
エラー情報ファイル × ×
エラーデータファイル × ×
LOB入力ファイル ×
LOB中間ファイル × ×
インデクス情報ファイル × ×
ソート用ワークファイル × ×
処理結果ファイル × ×

(凡例)
○:使用できます。
×:使用できません。

注※
バイナリ形式,及び固定長データ形式の場合は,使用できません。
(e) データ連動の対象となる抽出側データべースへのユティリティ実行について

データ連動の対象となる抽出側データべースに対してpdloadを実行する場合,次の点に注意してください。

(f) 行の最後がコンマ(,)で終わっているDAT形式の入力データファイルをデータロードする場合について

行の最後がコンマ(,)で終わっているDAT形式の入力データファイルをデータロードする場合に,「列数が不一致」などの理由でデータロードできないときがあります。このような場合は,列構成情報ファイルに表の列名をすべて記述して,最後にスキップデータ文を記述します。この場合,入力データの修正は不要です。

なお,表の列数が多く列構成情報ファイルの記述が大変なときは,次の方法で作成できます。

  1. SQL Executerを使用して表の列名をファイルに出力します。
    該当する表の列名をファイルに出力する場合,列定義順に出力する必要があるため,SQL文の記述は次のようにしてください。
    PUTFILE TO ファイル名 SELECT COLUMN_NAME FROM MASTER.SQL_COLUMNS
    WHERE TABLE_NAME='表名' ORDER BY COLUMN_ID;
  2. 1.で編集した結果を出力したファイル名の最後の行に,スキップデータ文を追記します。
(g) プラグインインデクスが定義してある表へのデータロードについて
(h) HiRDB Text Search Plug-inの差分インデクス機能を使用している場合について

HiRDB Text Search Plug-inの差分インデクス機能を使用している場合,クライアント環境定義PDPLUGINNSUBの指定によって,pdloadが更新するインデクスを次に示します。

既存データの有無 PDPLUGINNSUBの指定
Y N 設定なし
既存データなし(作成モードのデータロード)
既存データあり(追加モードのデータロード)

(凡例)
M:MASTERインデクスを更新
S:差分インデクスを更新
(i) ユニークキーインデクス又は主キーインデクスを定義した表へのデータロードについて

ユニークキーインデクス又は主キーインデクスを定義した表にデータロードをする場合は,次に示す注意が必要です。

(j) データロード対象の表を基にリストを作成している場合について

データロード対象の表を基にリストを作成している場合,データロード後にリストを使用して検索したときには,次のような現象が発生します。

このような場合,リストを使用して検索する前に,リストを再作成する必要があります。

(k) pdload実行中に必要となるサーバ当たりの排他資源

pdload実行中には,次に示すサーバ当たりの排他資源が必要となります。

可変記号の説明:
a:表格納用RDエリア数
b:インデクス格納用RDエリア数
c:LOB列格納用RDエリア数
d:インデクス数
e:表格納用RDエリアの使用中セグメント数
f:インデクス格納用RDエリアの使用中セグメント数
g:↑LOB列格納用RDエリアの使用中セグメント数÷64000↑
h:使用する順序数生成子数
i:使用する順序数生成子格納RDエリアの数
x:32ビットモードのHiRDBの場合は6,64ビットモードのHiRDBの場合は4
A:MAX(表の列数,表のインデクス数,表の格納RDエリア数)
注※
-dオプション指定時は,表格納用RDエリア,インデクス格納用RDエリア,及びLOB列格納用RDエリアの使用中セグメント数の方が多い場合は使用中セグメント数で求め,格納するデータの使用するセグメント数の方が多い場合はデータ格納予定のセグメント数で求めます。
(l) コマンド実行画面に出力されるメッセージ

pdloadは,標準出力に経過メッセージを出力しながら処理をします。また,エラー発生時は,標準エラー出力にエラーメッセージを出力します。標準出力や標準エラー出力への出力が抑止されている環境でpdloadを実行した場合,メッセージ出力待ちでpdloadが無応答状態となったり,メッセージログファイルにKFPL20003-Eメッセージを出力してpdloadが異常終了したりすることがあります。そのため,標準出力や標準エラー出力への出力ができない環境ではpdloadを実行しないでください。なお,標準出力,及び標準エラー出力に出力するメッセージの順序や数は,メッセージログファイルやイベントログと一致しないことがあります。正確にメッセージを把握したい場合は,メッセージログファイル又はイベントログを参照してください。

(m) 共用表へのデータロード

共用表にデータロードする場合,共用表,及び処理対象の表に定義した共用インデクスを格納しているRDエリアに対して,EXモードで排他を掛けます。そのため,該当するRDエリアに定義したほかの表やインデクスも参照,及び更新ができません。共用表に対してデータロードする場合の排他制御モードについては,「付録B.2 ユティリティの排他制御モード」を参照してください。

(n) 参照制約又は検査制約を定義した表へのデータロード

参照制約又は検査制約を定義した表に対してデータロードする場合,pdloadはデータの整合性が保たれているかどうかのチェックをしません。そのため,データロードする場合は,pdconstckを使用して整合性を確認する必要があります。表の整合性確認手順については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。

(o) うるう秒を含んだ時刻データ又は時刻印データのデータロード

うるう秒を含んだ時刻データ又は時刻印データをデータロードする場合,pd_leap_secondオペランドにYを指定します。このオペランドでYを指定すると,時刻データ,又は時刻印データの秒で指定できる範囲が0〜61秒になります。

(p) 再編成時期予測機能との関係

作成モード(-d指定)のデータロードをすると,再編成時期予測機能の結果に表やインデクスのデータを削除した運用履歴が反映されます。

また,pdloadが異常終了した状態のまま,pddbstの状態解析結果蓄積機能を実行すると,データロード完了後の状態で再編成時期を予測できないため,予測結果が不正となります。したがって,pdloadが異常終了した場合は,pdloadを再実行して正常終了させた状態で,pddbstの状態解析結果蓄積機能を実行してください。

注※
例えば,データロード中に異常終了してロールバックした状態のDBの情報を蓄積すると,空のDBを基に予測してしまいます。

(3) 特定機能使用時のオプション,及び制御文の指定可否

pdloadの特定機能を使用する場合,オプション,及び制御文の指定可否が変わります。特定機能とは次の機能をいいます。

特定機能使用時のオプション,及び制御文の指定可否を表5-54,及び表5-55に示します。なお,監査証跡表へのデータ登録については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

表5-54 特定機能使用時のオプションの指定可否

オプション 指定可否
監査証跡表へのデータ登録 分割入力データファイルの作成
-d ×
-a × ○(入力データファイルが固定長データ形式の場合-aを指定)
-b ◎(-bを指定) ×
-W ×
-w × ×
-U × ×
-i ×
-l ×
-k × ×
{-c|-v} ○(-vを指定) ○(入力データファイルが固定長データ形式の場合-cを指定)
-n ×
-u
-x ×
-s ×
-e ×
-r × ×
-z ○(省略した場合でも指定したと仮定)
-y ×
-o ×
-m
-X
-K × ×
-G × ×

(凡例)
◎:必ず指定します。
○:任意に指定できます。
×:指定できません。

表5-55 特定機能使用時の制御文の指定可否

制御文 オペランド 指定可否
監査証跡表へのデータ登録 分割入力データファイルの作成
source ◎((uoc)を指定) ◎(入力データファイルを指定)
index ×
idxwork ×
sort ×
lobdata × ×
lobcolumn × ×
lobmid × ×
srcuoc ×
array
extdat ×
src_work ×
option spacelvl
tblfree ×
idxfree ×
job × ×
cutdtmsg × ×
nowait ×
bloblimit × ×
exectime
null_string × ×
divermsg × ×
dataerr × ×
lengover ×
report ×

(凡例)
◎:必ず指定します。
○:任意に指定できます。
×:指定できません。
−:該当しません。

(4) BOMを持つファイルの使用

pdntenvコマンドで文字コードとしてutf-8を選択した場合,pdloadの入力ファイルには,BOMを持つファイルを使用できることがあります。pdloadでのBOMを持つファイルの使用可否を表5-56に示します。なお,pdloadの入力ファイルとしてBOMを持つファイルを使用しても,BOMは読み飛ばされます。また,pdloadで出力されるファイルにはBOMは付きません。

表5-56 pdloadでのBOMを持つファイルの使用可否(UTF-8の場合)

オプション又は制御文 入力ファイル BOMを持つファイルの使用
-c 列構成情報ファイル
-v ナル値情報ファイル
制御情報ファイル
source 入力データファイル DAT
拡張DAT
バイナリ ×
固定長 ×
pdrorg -W生成 ×
index インデクス情報ファイル ×
lobdata LOB入力ファイル ×
lobcolumn 列単位LOB入力ファイル ×
lobmid LOB中間ファイル ×
SQL定義ファイル ×

(凡例)
○:使用できます。
×:使用できません。
−:該当しません。

(5) 制御文で指定しない場合のファイル出力先ディレクトリ

pdload実行時,制御情報ファイルでファイル出力先を指定しない場合,次の表に示すディレクトリにファイルを出力します。

なお,SQL定義ファイルは制御情報ファイルで出力先を指定できません。SQL定義ファイルの出力先は,次の表に示す,制御文の指定をしない場合と同様です。

表5-57 pdloadがファイルを出力するディレクトリ

制御文※1の指定 システム定義のpd_tmp_directoryオペランドの指定
あり なし
環境変数TMP※2の指定
あり なし
あり 制御文に指定したディレクトリ又はファイル
なし pd_tmp_directoryに指定したディレクトリ TMPに指定したディレクトリ %PDDIR%\tmpディレクトリ

注※1 
source文(errorオペランド),index文,idxwork文,sort文,lobmid文,又はlobmid文(errorオペランド)

注※2 
システム環境変数の指定