8.4.3 アンロード元の表とリロード先の表の表定義が異なる場合のリロード実行可否
pdrorgでは,アンロードした表の表定義情報をアンロードデータファイルに出力しています。リロード時は,アンロードデータファイル内の表定義情報とリロードする表の表定義情報を比較し,リロードできるかどうかを判定しています。
アンロードした表に対するリロードは,表定義が同じ場合はリロードができます。しかし,別表,若しくは別システムへの表データの移行,又は表定義が異なる表へのリロードは,条件によってリロードができない場合があります。
(1) リロード時に指定するオプション
別表,若しくは別システムへ表データを移行する場合,又はアンロードした表とリロードする表の格納条件が異なる表へのリロードをする場合,次のようにオプションを指定してください。
-
アンロード時,及びリロード時に-gオプションを指定してください。
-
BLOB列,又はBLOB属性の抽象データ型列がある表の場合,-gオプションと同時に-jオプションも指定してください。
(2) アンロードした表とリロードする表の格納条件の比較
アンロードした表とリロードする表の分割方法が同じ場合は,次の表の項目をチェックし,格納条件が異なるかどうかを判定します。格納条件が異なる場合,表「格納条件が異なる場合のリロード可否」に従って,リロード可否が決まります(表単位又はスキーマ単位にリロードする場合の実行可否です。RDエリア単位にリロードする場合はすべての条件で実行できません)。
分割方法 |
チェック項目 |
|
---|---|---|
非分割 |
なし |
|
ハッシュ分割 |
ハッシュ関数 |
関数名 |
ハッシュ種別 |
FIX又はフレキシブル |
|
分割キーの列構成 |
定義順 |
|
格納RDエリア |
格納RDエリア数,RDエリアID,RDエリア名,及びサーバ名 |
|
キーレンジ |
分割キーの列構成 |
定義順,及び列ID |
分割キーの先頭列 |
列ID,データ型,及び定義長 |
|
分割条件数 |
||
分割条件 |
格納RDエリアID,及び条件値 |
|
マトリクス分割 |
分割キーの列構成 |
定義順 |
分割条件数 |
||
分割条件値数 |
||
分割キーの条件 |
キー内分割数,次元番号,分割列ID,データ型,定義長,条件値長,及び条件値 |
|
ハッシュ関数 |
関数名 |
|
ハッシュ種別 |
FIX又はフレキシブル |
|
格納RDエリア |
格納RDエリア数,RDエリアID,RDエリア名,及びサーバ名 |
-g指定※1 |
HiRDBの構成 |
アンロードした表の分割条件 |
リロードする表の分割条件 |
||||||
---|---|---|---|---|---|---|---|---|---|
キーレンジ分割 |
ハッシュ分割 |
マトリクス分割 |
非分割 |
||||||
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) リロードできないときの条件
次のような場合にはリロードできません。
-
LOB列がある表で-jオプションを指定していない場合
-
FIX表から非FIX表,又は非FIX表からFIX表へのリロード
-
アンロードした表とリロードする表の列数,列定義順序,各列のデータ型,列名,及び列属性(非ナル値制約など)が異なる場合
-
非ナル値制約の列がある表をアンロードし,リロード先では分割キー構成列とした場合(非ナル値制約でない列を分割キー構成列に変更した場合は,-Wオプションを指定してアンロードし,データベース作成ユティリティでデータロードしてください)
-
値が重複するデータの列に,新たにユニークキーインデクス又は主キーインデクスを定義した場合
-
リロードする表の繰返し列ごとの要素数が,アンロードした表よりも小さい場合
-
抽象データ型が定義されている列のデータ型を変更した場合