13.16.1 例題1(別表へデータを移行する場合)
TABLE01のデータをTABLE02に移行(コピー)します。TABLE01とTABLE02の表定義は次のように異なっているとします。
- 〈この項の構成〉
(1) pdholdコマンドでアンロード及びデータロード対象RDエリアを閉塞します
pdhold -r RDAREA01,RDAREA02,…
(2) pdrorgコマンドの制御文ファイルを作成します
制御文ファイル(/pdrorg/rorg01)の内容を次に示します。
(a) HiRDB/シングルサーバの場合
unload /pdrorg/unfile1 1 unld_func type=sgmltext,func=unsgmltext(sgmltext) 2
- 〔説明〕
-
-
アンロードデータファイルの名称を指定します。
-
表にSGMLTEXT型が定義されているため,コンストラクタパラメタ逆生成関数の情報を指定します。
-
(b) HiRDB/パラレルサーバの場合
unload bes1:/pdrorg/unfile1 1 unld_func type=sgmltext,func=unsgmltext(sgmltext) 2
- 〔説明〕
-
-
アンロードデータファイルの名称を指定します。
-
表にSGMLTEXT型が定義されているため,コンストラクタパラメタ逆生成関数の情報を指定します。
-
(3) pdrorgコマンドでTABLE01のデータをアンロードします
pdrorg -k unld -W bin -t TABLE01 -g /pdrorg/rorg01
- 〔説明〕
-
-k:アンロードをするためunldを指定します。
-W bin:アンロードデータファイルをpdloadコマンドの入力ファイル(バイナリ形式)として使用できるようにします。
-t:アンロードする表の名称を指定します。
-g:HiRDB/パラレルサーバで,TABLE01をサーバ間横分割している場合に指定します。-gオプションを指定すると,アンロードデータファイルが一元化されます(一つになります)。
/pdrorg/rorg01:pdrorgコマンドの制御文ファイル名を指定します。
(4) 列構成情報ファイル(/pdload/column01)を作成します
*skipdata*,type=integer C5 C6,func=(sgmltext,param=blob) C7
(3)で作成した入力データファイルの列構成の形式とTABLE02の列構成が異なるため,データロードするときに列構成情報ファイルが必要になります。列構成情報ファイルの指定例については,「列構成情報ファイルの指定例」を参照してください。
(5) pdloadコマンドの制御文ファイルを作成します
制御文ファイル(/pdload/load01)の内容を次に示します。
(a) HiRDB/シングルサーバの場合
source /pdrorg/unfile1
- 〔説明〕
-
(3)で作成したアンロードデータファイルの名称を指定します。
(b) HiRDB/パラレルサーバの場合
source bes1:/pdrorg/unfile1
- 〔説明〕
-
(3)で作成したアンロードデータファイルの名称を指定します。
(6) pdloadコマンドでTABLE02にデータをロードします
pdload -b -W -c /pdload/column01 TABLE02 /pdload/load01
- 〔説明〕
-
-b:バイナリ形式のデータをロードする場合に指定します。
-W:pdrorgコマンドで作成したバイナリ形式の入力データファイルを使用する場合に指定します。
-c /pdload/column01:(4)で作成した列構成情報ファイル名を指定します。
TABLE02:データロードする表の名称を指定します。
/pdload/load01:pdloadコマンドの制御文ファイル名を指定します。
(7) データロード対象RDエリアのバックアップを取得します
更新前ログ取得モード(省略値)でデータロードを実行したため,データロード対象RDエリアのバックアップを取得してください。バックアップの取得方法については,「例題8(RDエリア単位にバックアップを取得する場合)」を参照してください。
(8) pdrelsコマンドでRDエリアの閉塞を解除します
pdrels -r RDAREA01,RDAREA02,…
コマンドの実行後,実行結果が正しいかどうか確認することをお勧めします。コマンドの実行結果の確認方法については,マニュアル「HiRDB Version 9 コマンドリファレンス」を参照してください。