8.4.3 アンロード元の表とリロード先の表の表定義が異なる場合のリロード実行可否

pdrorgでは,アンロードした表の表定義情報をアンロードデータファイルに出力しています。リロード時は,アンロードデータファイル内の表定義情報とリロードする表の表定義情報を比較し,リロードできるかどうかを判定しています。

アンロードした表に対するリロードは,表定義が同じ場合はリロードができます。しかし,別表,若しくは別システムへの表データの移行,又は表定義が異なる表へのリロードは,条件によってリロードができない場合があります。

<この項の構成>
(1) リロード時に指定するオプション
(2) アンロードした表とリロードする表の格納条件の比較
(3) リロードできないときの条件

(1) リロード時に指定するオプション

別表,若しくは別システムへ表データを移行する場合,又はアンロードした表とリロードする表の格納条件が異なる表へのリロードをする場合,次のようにオプションを指定してください。

(2) アンロードした表とリロードする表の格納条件の比較

アンロードした表とリロードする表の分割方法が同じ場合は,表8-5の項目をチェックし,格納条件が異なるかどうかを判定します。格納条件が異なる場合,表8-6に従って,リロード可否が決まります(表単位又はスキーマ単位にリロードする場合の実行可否です。RDエリア単位にリロードする場合はすべての条件で実行できません)。

表8-5 アンロードした表とリロードする表の分割方法が同じ場合の格納条件チェック項目

分割方法チェック項目
非分割なし
ハッシュ分割ハッシュ関数関数名
ハッシュ種別FIX又はフレキシブル
分割キーの列構成定義順
格納RDエリア格納RDエリア数,RDエリアID,RDエリア名,及びサーバ名
キーレンジ分割キーの列構成定義順,及び列ID
分割キーの先頭列列ID,データ型,及び定義長
分割条件数
分割条件格納RDエリアID,及び条件値
マトリクス分割分割キーの列構成定義順
分割条件数
分割条件値数
分割キーの条件キー内分割数,次元番号,分割列ID,データ型,定義長,条件値長,及び条件値
ハッシュ関数関数名
ハッシュ種別FIX又はフレキシブル
格納RDエリア格納RDエリア数,RDエリアID,RDエリア名,及びサーバ名

表8-6 格納条件が異なる場合のリロード可否

-g指定※1HiRDBの構成アンロードした表の分割条件リロードする表の分割条件
キーレンジ分割ハッシュ分割マトリクス分割非分割
FIXフレキシブルキーレンジとキーレンジキーレンジとハッシュ
ありHiRDB/シングルサーバキーレンジ分割
ハッシュ分割FIX
フレキシブル
マトリクス分割キーレンジとキーレンジ
キーレンジとハッシュ
非分割
HiRDB/パラレルサーバキーレンジ分割
ハッシュ分割FIX
フレキシブル
マトリクス分割キーレンジとキーレンジ
キーレンジとハッシュ
非分割
なしHiRDB/シングルサーバキーレンジ分割
ハッシュ分割FIX×
フレキシブル×
マトリクス分割キーレンジとキーレンジ
キーレンジとハッシュ
非分割
HiRDB/パラレルサーバキーレンジ分割※6×※2※3××※5
ハッシュ分割FIX××※2※4××※5
フレキシブル××※7××※5
マトリクス分割キーレンジとキーレンジ××※2※3※6×※5
キーレンジとハッシュ××※2※3××※5
非分割××※2※3××※2
(凡例)
○:リロードする表の格納条件に従って格納できます。
×:リロードできません。
注※1
アンロード時,及びリロード時の-gオプションの指定有無を示しています。なお,-gオプションを指定しない場合の分割表から非分割表へのリロードの意味は,サーバ間分割していない分割表から非分割表へのリロードを指します。サーバ間分割している場合は-gオプションを指定してください。
注※2
BLOB列,又はBLOB属性の抽象データ型列がある表の場合,アンロード時,及びリロード時に-jオプションを指定しているときだけリロードできます。
注※3
ハッシュ関数を使用しないで,pdrorgがラップアラウンドで格納します。
注※4
アンロード時に格納されていたRDエリアと同じRDエリアに格納します。アンロード時のRDエリアがリロード時にない場合は,リロードできません。
注※5
BLOB列,又はBLOB属性の抽象データ型列がある表の場合はリロードできません。
注※6
表格納条件の変更の内容によって,リロード可否が決まります。リロード可否を次に示します。
表格納条件の変更の内容リロード可否備考
分割条件変更あり分割条件追加×エラー終了します。
分割条件削除
分割キー値の変更
分割条件変更なし格納RDエリア変更ありRDエリア名変更注※2,及び注※5の条件を満たす場合,アンロード時の格納RDエリアに対応するRDエリアに格納します。
RDエリアがあるサーバの変更×エラー終了します。
格納RDエリア変更なし分割キーの構成列変更(列名,指定順序など)×エラー終了します。
(凡例)
 ○:リロードできます。
 ×:リロードできません。
注※7
表格納条件の変更の内容によって,リロード可否が決まります。リロード可否を次に示します。
表格納条件の変更の内容リロード可否備考
格納RDエリア変更ありRDエリアの追加注※4,及び注※5の条件を満たす場合,アンロード時の格納RDエリアに格納します。追加したRDエリアには格納されません。
RDエリアの削除×エラー終了します。
RDエリアの名称変更
RDエリアがあるサーバの変更
格納RDエリア変更なしハッシュ関数変更注※4,及び注※5の条件を満たす場合,アンロード時の格納RDエリアに格納します。
分割キーの構成列変更(列名,指定順序など)
(凡例)
 ○:リロードできます。
 ×:リロードできません。

(3) リロードできないときの条件

次のような場合にはリロードできません。

  1. LOB列がある表で-jオプションを指定していない場合
  2. FIX表から非FIX表,又は非FIX表からFIX表へのリロード
  3. アンロードした表とリロードする表の列数,列定義順序,各列のデータ型,列名,及び列属性(NOT NULL属性など)が異なる場合
  4. NOT NULL属性の列がある表をアンロードし,リロード先では分割キー構成列とした場合(NOT NULL属性でない列を分割キー構成列に変更した場合は,-Wオプションを指定してアンロードし,データベース作成ユティリティでデータロードしてください)
  5. 値が重複するデータの列に,新たにユニークキーインデクス又は主キーインデクスを定義した場合
  6. リロードする表の繰返し列ごとの要素数が,アンロードした表よりも小さい場合
  7. 抽象データ型が定義されている列のデータ型を変更した場合