12.1.1 表をほかのHiRDBシステムに移行する前に
(1) 制限事項
-
ディクショナリ搬出入ユティリティでは,抽象データ型を定義している表の定義情報をほかのHiRDBシステムに移行できません。移行できる情報や詳細については,「表定義情報と表データを別々に移行する方法」を参照してください。
-
表定義情報と表データを同時に移行する方法では,スキーマ単位で移行できません(表単位の移行だけができます)。表定義情報と表データを別々に移行する方法では,スキーマ単位又は表単位に移行できます。
-
移行元システムと移行先システムの文字コードが異なる場合で,文字コード変換が必要な列を持つ表を移行するときは,まず文字コード変換をしてから,移行先へデータロードしてください。
文字コード変換が不要な列(数値型の列など)だけの表を移行するときは,移行元システムでデータベース再編成ユティリティを使用してデータベース作成ユティリティ用の入力データファイルを作成し,移行先システムでデータベース作成ユティリティを使用してデータロードしてください。
データベース再編成ユティリティは,移行元システムのアンロードデータファイルの文字コードと,移行先システムの文字コードが異なる時点でエラーとなりますが,この方法で移行すると,エラーになりません。
-
改竄防止表はほかのHiRDBシステムに移行できません。また,移行先システムで表データをリロードできません。
-
データベース複写ユティリティとデータベース回復ユティリティを使用したデータの移行はできません。移行元システムで取得したバックアップを移行先システムでリストア(回復)しないでください。
(2) RDエリアに関する注意事項(重要)
-
表定義情報を移行する場合,移行先システムに移行元システムと同じ名称のRDエリアを作成しておく必要があります。
-
表定義情報と表データを同時に移行する方法で,非分割表を移行する場合,移行元システムと移行先システムでRDエリア名が異なるとき,移行先システムでデータベース作成ユティリティ実行時に-w rdaomitオプションを指定すれば,移行ができます。ただし,表にBLOB列が定義されている場合は,表定義エラーとなります。
-
表定義情報と表データを別々に移行する方法で,移行対象の表が格納されているRDエリア名とRDエリアを格納するサーバ構成が,移行元システムと移行先システムで異なる場合,データベース再編成ユティリティ実行時に-gオプションを指定する必要があります。-gオプションを指定する必要があるシステム構成例を次の図に示します。
図12‒1 -gオプションを指定する必要があるシステム構成例
(3) 表定義(データ型及び列の定義長)を変更する場合の注意事項
データ型又は列の定義長を変更できるのは,データベース再編成ユティリティで移行元システムの表データをDAT形式又はバイナリ形式でアンロードしたファイルを,移行先システムでデータロードするときです。DAT形式及びバイナリ形式の入力データファイルの制限事項については,マニュアル「HiRDB コマンドリファレンス」を参照してください。
(a) 表定義を変更して表データを移行できない場合
表定義を変更して表データを移行できないのは,次の場合です。
-
移行元システムと移行先システムのデータ型の組み合わせによって,移行に使用する入力データファイルの形式(DAT形式かバイナリ形式か)が異なります。このため,一つの表内にDAT形式だけで移行できるデータ型とバイナリ形式だけで移行できるデータ型が混在していると,移行できません。この場合はUAPなどで移行用のデータを作成する必要があります。
-
DAT形式のファイルで移行する場合,アンロードするときに文字列に変換するため,文字列に変換できないデータが含まれている表は移行できません。
移行先システムで表データをデータロードする場合,移行元システムのデータが移行先システムのデータ型に対応した形式でないと,エラーになったり,データが切り捨てられるおそれがあります。このため,移行元システムのデータが,移行先システムのデータ型に対応している必要があります。詳細は,マニュアル「HiRDB コマンドリファレンス」を参照してください。
(b) 移行できるデータ型の組み合わせと入力データファイルの形式
移行元システムと移行先システムで,移行できるデータ型の組み合わせと,その場合に作成する入力データファイルの形式を次の表に示します。
移行できるデータ型の組み合わせ |
入力データファイルの形式 |
||
---|---|---|---|
移行元システム |
移行先の列 |
DAT形式 |
バイナリ形式 |
数データ |
数データ |
△ |
△ |
固定長文字データ |
○ |
× |
|
可変長文字データ |
|||
長大データ |
|||
バイナリデータ |
|||
固定長文字データ |
数データ |
△ |
× |
固定長文字データ |
○ |
○ |
|
可変長文字データ |
× |
||
日付データ |
△ |
||
時刻データ |
|||
日間隔データ |
|||
時間隔データ |
|||
時刻印データ |
|||
長大データ |
○ |
||
バイナリデータ |
|||
可変長文字データ |
数データ |
△ |
× |
固定長文字データ |
○ |
||
可変長文字データ |
○ |
||
日付データ |
△ |
× |
|
時刻データ |
|||
日間隔データ |
|||
時間隔データ |
|||
時刻印データ |
|||
長大データ |
○ |
||
バイナリデータ |
|||
日付データ |
固定長文字データ |
○ |
× |
可変長文字データ |
|||
日付データ |
○ |
||
長大データ |
× |
||
バイナリデータ |
|||
時刻データ |
固定長文字データ |
○ |
× |
可変長文字データ |
|||
日付データ |
× |
||
時刻データ |
○ |
○ |
|
長大データ |
× |
||
バイナリデータ |
|||
日間隔データ |
固定長文字データ |
○ |
× |
可変長文字データ |
|||
日間隔データ |
○ |
||
長大データ |
× |
||
バイナリデータ |
|||
時間隔データ |
固定長文字データ |
○ |
× |
可変長文字データ |
|||
時間隔データ |
○ |
||
長大データ |
× |
||
バイナリデータ |
|||
時刻印データ |
固定長文字データ |
○ |
× |
可変長文字データ |
|||
時刻印データ |
○ |
||
長大データ |
× |
||
バイナリデータ |
|||
長大データ |
長大データ |
× |
○ |
バイナリデータ |
|||
バイナリデータ |
数データ |
△ |
× |
固定長文字データ |
○ |
||
可変長文字データ |
|||
日付データ |
△ |
||
時刻データ |
|||
日間隔データ |
|||
時間隔データ |
|||
時刻印データ |
|||
長大データ |
|||
バイナリデータ |
○ |
○ |
- (凡例)
-
○:移行できます。
△:データ値が移行先システムのデータ型に対応した値であれば,移行できます。
×:移行できません。
(c) 列の定義長を変更する場合の入力データファイルの形式
移行先システムで定義長をどのように変更するかと,その場合に作成する入力データファイルの形式を次の表に示します。
移行元システム |
移行先システム |
入力データファイル |
||
---|---|---|---|---|
定義長を変更する列のデータ型 |
変更後の定義長 (変更前と比べて) |
DAT形式 |
バイナリ形式 |
|
数データ |
DECIMAL型 |
長い |
△ |
× |
短い |
△ |
× |
||
DECIMAL型以外 |
−※1 |
− |
− |
|
固定長文字データ |
長い |
○※2 |
○※2,※3 |
|
短い |
△ |
× |
||
可変長文字データ |
長い |
○ |
○ |
|
短い |
△ |
× |
||
時刻印データ |
長い |
△ |
× |
|
短い |
△ |
× |
||
長大データ |
長い |
× |
○ |
|
短い |
× |
× |
||
バイナリデータ |
長い |
△ |
○ |
|
短い |
△ |
× |
- (凡例)
-
○:移行できます。
△:データ値が移行先システムのデータ型に対応した値であれば,移行できます。
×:移行できません。
−:該当しません。
- 注※1
-
DECIMAL型以外の数データは,定義長が固定のため,対象外です。
- 注※2
-
左詰めで入力され,余りは空白で埋められます。
- 注※3
-
HiRDBのバージョンが08-04より前の場合は,移行できません。