12.1.5 例題1(表定義情報と表データを同時に移行する場合)
HiRDBシステムAの表(TABLE1)をHiRDBシステムBに移行します。
-
TABLE1にはLOB列が定義されています。
-
TABLE1にはインデクス(INDEX1)が定義されています。
なお,移行先システムには,同じ名称のRDエリア(RDAREA1〜RDAREA6)が作成されているとします。
- 〈この項の構成〉
-
(1) pdholdコマンドでRDAREA1〜RDAREA6を閉塞します
pdhold -r RDAREA1,RDAREA2,RDAREA3,RDAREA4,RDAREA5,RDAREA6
(2) pdrorgコマンドの制御文ファイルを作成します
制御文ファイル(/pdrorg/rorg01)の内容を次に示します。
(a) HiRDB/シングルサーバの場合
unload /file/export_file
- 〔説明〕
-
表移行用アンロードファイルの名称を指定します。
(b) HiRDB/パラレルサーバの場合
unload bes1:/file/export_file
- 〔説明〕
-
表移行用アンロードファイル(bes1用)の名称を指定します。-gオプションが仮定されるため,表移行用アンロードファイルを1か所に作成します。
(3) pdrorgコマンドでTABLE1をエクスポートします
pdrorg -k unld -W bin -w -t TABLE1 /pdrorg/rorg01
- 〔説明〕
-
-k:エクスポート(アンロード)をするためunldを指定します。
-W:表移行用アンロードファイルを作成するためbin -wを指定します。
-t:エクスポートする表の名称を指定します。
/pdrorg/rorg01:(2)で作成したpdrorgコマンドの制御文ファイル名を指定します。
(4) pdrelsコマンドでRDAREA1〜RDAREA6の閉塞を解除します
pdrels -r RDAREA1,RDAREA2,RDAREA3,RDAREA4,RDAREA5,RDAREA6
(5) 表移行用アンロードファイルをCMTなどの媒体に格納します
(3)で作成した表移行用アンロードファイルをCMTなどの媒体に格納します。
移行元システム(HiRDBシステムA)での作業はこれで終わりです。
(6) 移行先システムに表移行用アンロードファイルを格納します
これ以降は移行先システム(HiRDBシステムB)での作業になります。
CMTなどの媒体に格納した表移行用アンロードファイルを移行先システムに格納します。
(7) インポートを実行するユーザのスキーマをpddefコマンドで定義します
pddef CREATE SCHEMA AUTHORIZATION USR01;
(8) システムログファイルをスワップします
バックアップを取得する前に,pdlogswapコマンドでシステムログファイルをスワップします。
pdlogswap -d sys -w
- 〔説明〕
-
HiRDB/パラレルサーバの場合,-sオプションを指定して,バックアップ対象の全サーバ分pdlogswapコマンドを実行します。
(9) pdcopyコマンドでバックアップを取得します
pdcopy -m /rdarea/mast/mast01 -M r -r RDMAST,RDDIR,RDDIC,RDAREA1,RDAREA2,RDAREA3,RDAREA4,RDAREA5,RDAREA6 -b /pdcopy/backup01 -p /pdcopy/list01
- 〔説明〕
-
データベース移行中の障害発生に備えてバックアップを取得します。バックアップを取得するRDエリアを次に示します。
-
マスタディレクトリ用RDエリア
-
データディレクトリ用RDエリア
-
データディクショナリ用RDエリア
-
表をインポートするユーザ用RDエリア及びユーザLOB用RDエリア(RDAREA1〜RDAREA6)
-m:マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。
-M:バックアップ取得モードを指定します。
-r:バックアップを取得するRDエリアの名称を指定します。
-b:バックアップファイル名を指定します。
-p:pdcopyコマンドの処理結果リストの出力先を指定します。
バックアップの取得については,「バックアップの取得方法」を参照してください。
-
(10) pdholdコマンドでRDAREA1〜RDAREA6を閉塞します
pdhold -r RDAREA1,RDAREA2,RDAREA3,RDAREA4,RDAREA5,RDAREA6
(11) pdloadコマンドの制御文ファイルを作成します
制御文ファイル(/pdload/load01)の内容を次に示します。
(a) HiRDB/シングルサーバの場合
source /file/export_file 1 idxwork /idxwork 2 sort /sortwork 3
- 〔説明〕
-
-
表移行用アンロードファイルの名称を指定します。
-
インデクス情報ファイル作成用のディレクトリ名を指定します。このディレクトリ下にインデクス情報ファイルが作成されます。
-
ソート用ワークディレクトリの名称を指定します。
-
(b) HiRDB/パラレルサーバの場合
source bes1:/file/export_file 1 idxwork bes1 /idxwork 2 sort bes1 /sortwork 3 idxwork bes2 /idxwork 4 sort bes2 /sortwork 5
- 〔説明〕
-
-
表移行用アンロードファイル(bes1用)の名称を指定します。
-
インデクス情報ファイル作成用(bes1用)のディレクトリ名を指定します。このディレクトリ下にインデクス情報ファイルが作成されます。
-
ソート用ワークディレクトリ(bes1用)の名称を指定します。
-
インデクス情報ファイル作成用(bes2用)のディレクトリ名を指定します。このディレクトリ下にインデクス情報ファイルが作成されます。
-
ソート用ワークディレクトリ(bes2用)の名称を指定します。
-
(12) pdloadコマンドでTABLE1をインポートします
pdload -b -W -w all TABLE1 /pdload/load01
- 〔説明〕
-
インデクス(INDEX1)も同時に再作成するため,-iオプションを省略してインデクス一括作成モードでインデクスを一括作成します。
-b:表移行用アンロードファイルを入力するため,-W -wを指定します。また,表定義情報と表データを同時にインポートするため,allを指定します。
/pdload/load01:(11)で作成したpdloadコマンドの制御文ファイル名を指定します。
このとき,移行元システムと移行先システムでエンディアンが異なる場合,インポート時にエンディアン変換をします。なお,インポート時に障害が発生した場合の対処については,「インポート時に障害が発生した場合の対処方法」を参照してください。
(13) システムログファイルをスワップします
バックアップを取得する前に,pdlogswapコマンドでシステムログファイルをスワップします。
pdlogswap -d sys -w
- 〔説明〕
-
HiRDB/パラレルサーバの場合,-sオプションを指定して,バックアップ対象の全サーバ分pdlogswapコマンドを実行します。
(14) pdcopyコマンドでバックアップを取得します
pdcopy -m /rdarea/mast/mast01 -M r -r RDMAST,RDDIR,RDDIC,RDAREA1,RDAREA2,RDAREA3,RDAREA4,RDAREA5,RDAREA6 -b /pdcopy/backup02 -p /pdcopy/list02
- 〔説明〕
-
バックアップを取得するRDエリアを次に示します。
-
マスタディレクトリ用RDエリア
-
データディレクトリ用RDエリア
-
データディクショナリ用RDエリア
-
表をインポートするユーザ用RDエリア及びユーザLOB用RDエリア(RDAREA1〜RDAREA6)
-m:マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。
-M:バックアップ取得モードを指定します。
-r:バックアップを取得するRDエリアの名称を指定します。
-b:バックアップファイル名を指定します。
-p:pdcopyコマンドの処理結果リストの出力先を指定します。
バックアップの取得については,「バックアップの取得方法」を参照してください。
-
(15) pdrelsコマンドでRDAREA1〜RDAREA6の閉塞を解除します
pdrels -r RDAREA1,RDAREA2,RDAREA3,RDAREA4,RDAREA5,RDAREA6
コマンドの実行後,実行結果が正しいかどうか確認することをお勧めします。コマンドの実行結果の確認方法については,マニュアル「HiRDB Version 9 コマンドリファレンス」を参照してください。