スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)

[目次][索引][前へ][次へ]

12.1.9 例題5(固定長文字データの列の定義長を拡張して,表を移行する場合)

HiRDBシステムAの表(TABLE1)をHiRDBシステムBに移行します。

なお,移行先システムには,同じ名称のRDエリア(RDAREA1〜RDAREA4)が作成されているとします。

[図データ]

<この項の構成>
(1) pdholdコマンドでRDAREA1〜RDAREA4を閉塞します
(2) pdrorgコマンドの制御文ファイルを作成します
(3) pdrorgコマンドでTABLE1のデータをアンロードします
(4) pdrelsコマンドでRDAREA1〜RDAREA4の閉塞を解除します
(5) アンロードデータファイル及び搬出ファイルをCMTなどの媒体に格納します
(6) 移行先システムにアンロードデータファイル及び搬出ファイルを格納します
(7) TABLE1を所有するユーザのスキーマをpddefコマンドで定義します
(8) システムログファイルをスワップします
(9) pdcopyコマンドでバックアップを取得します
(10) 列の定義長を拡張したTABLE1をpddefコマンドで定義します
(11) pdholdコマンドでRDAREA1〜RDAREA4を閉塞します
(12) pdloadコマンドの列構成情報ファイルを作成します
(13) pdloadコマンドの制御文ファイルを作成します
(14) pdloadコマンドでTABLE1のデータをロードします
(15) システムログファイルをスワップします
(16) pdcopyコマンドでバックアップを取得します
(17) pdrelsコマンドでRDAREA1〜RDAREA4の閉塞を解除します

(1) pdholdコマンドでRDAREA1〜RDAREA4を閉塞します

 
pdhold -r RDAREA1,RDAREA2,RDAREA3,RDAREA4
 

(2) pdrorgコマンドの制御文ファイルを作成します

制御文ファイル(/pdrorg/rorg01)の内容を次に示します。

(a) HiRDB/シングルサーバの場合
 
unload /pdrorg/unfile1
 

〔説明〕
アンロードデータファイルの名称を指定します。
(b) HiRDB/パラレルサーバの場合
 
unload bes1:/pdrorg/unfile1
 

〔説明〕
アンロードデータファイル(bes1用)の名称を指定します。

(3) pdrorgコマンドでTABLE1のデータをアンロードします

 
pdrorg -k unld -j -g -W bin -t TABLE1 /pdrorg/rorg01
 

〔説明〕
-k:アンロードをするためunldを指定します。
-j:次に示す表をアンロードする場合に指定します。
  ・LOB列がある表
  ・LOB属性の抽象データ型を定義した表
-g:HiRDB/パラレルサーバで,TABLE1をサーバ間横分割している場合に指定してください。アンロードデータファイルが一つになります。
-W:pdload用の入力データファイルを作成する場合に指定します。この場合,バイナリ形式の入力データファイルを作成するため,binを指定します。
-t:アンロードする表の名称を指定します。
/pdrorg/rorg01:(2)で作成したpdrorgコマンドの制御文ファイル名を指定します。

(4) pdrelsコマンドでRDAREA1〜RDAREA4の閉塞を解除します

 
pdrels -r RDAREA1,RDAREA2,RDAREA3,RDAREA4
 

(5) アンロードデータファイル及び搬出ファイルをCMTなどの媒体に格納します

(3)で作成したアンロードデータファイルをCMTなどの媒体に格納します。

移行元システム(HiRDBシステムA)での作業はこれで終わりです。

(6) 移行先システムにアンロードデータファイル及び搬出ファイルを格納します

これ以降は移行先システム(HiRDBシステムB)での作業になります。

CMTなどの媒体に格納したアンロードデータファイル及び搬出ファイルを移行先システムに格納します。

(7) TABLE1を所有するユーザのスキーマを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
-b /pdcopy/backup01 -p /pdcopy/list01
 

〔説明〕
データベース移行中の障害発生に備えてバックアップを取得します。バックアップを取得するRDエリアを次に示します。
  • マスタディレクトリ用RDエリア
  • データディレクトリ用RDエリア
  • データディクショナリ用RDエリア
  • 移行する表を格納するユーザ用RDエリア及びユーザLOB用RDエリア(RDAREA1〜RDAREA4)
-m:マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。
-M:バックアップ取得モードを指定します。
-r:バックアップを取得するRDエリアの名称を指定します。
-b:バックアップファイル名を指定します。
-p:pdcopyコマンドの処理結果リストの出力先を指定します。
バックアップの取得については,「6. バックアップの取得方法」を参照してください。

(10) 列の定義長を拡張したTABLE1をpddefコマンドで定義します

 
pddef
   CREATE TABLE1 商品表
     (商品コード CHAR(10),
      商品イメージ BLOB(10K),
     IN RDAREA3,RDAREA4
     ) IN RDAREA1,RDAREA2;
 

〔説明〕
移行元システムでの表定義を次に示します。
 
CREATE TABLE1 商品表
  (商品コード CHAR(8),
   商品イメージ BLOB(10K),
  IN RDAREA3,RDAREA4
  ) IN RDAREA1,RDAREA2
移行先システムでは,商品コードの列の定義長を拡張しています。

なお,HiRDBシステムBに既にTABLE1が定義されている場合は,DROP TABLEで表を削除してから定義してください。

(11) pdholdコマンドでRDAREA1〜RDAREA4を閉塞します

 
pdhold -r RDAREA1,RDAREA2,RDAREA3,RDAREA4
 

(12) pdloadコマンドの列構成情報ファイルを作成します

列構成情報ファイル(/pdload/column01)の内容を次に示します。

 
商品コード,type=char(8)                      1.
商品イメージ                                 2.
 

〔説明〕
  1. 移行元システムでの列名及びデータ型を指定します。
  2. 移行元システムでの列名を指定します。

(13) pdloadコマンドの制御文ファイルを作成します

制御文ファイル(/pdload/load01)の内容を次に示します。

(a) HiRDB/シングルサーバの場合
 
source /pdrorg/unfile1                           1
idxwork /pdrorg/idxwork                          2
sort /sortwork,8192                              3
 

〔説明〕
  1. アンロードデータファイルの名称を指定します。
  2. インデクス情報ファイル作成用のディレクトリ名を指定します。このディレクトリ下にインデクス情報ファイルが作成されます。
  3. ソート用ワークディレクトリの名称を指定します。
(b) HiRDB/パラレルサーバの場合
 
unload bes1:/pdrorg/unfile1                     1
idxwork bes1 /pdrorg/idxwork                    2
sort bes1 /sortwork,8192                        3
idxwork bes2 /pdrorg/idxwork                    4
sort bes2 /sortwork,8192                        5
 

〔説明〕
  1. アンロードデータファイル(bes1用)の名称を指定します。
  2. インデクス情報ファイル作成用(bes1用)のディレクトリ名を指定します。このディレクトリ下にインデクス情報ファイルが作成されます。
  3. ソート用ワークディレクトリ(bes1用)の名称を指定します。
  4. インデクス情報ファイル作成用(bes2用)のディレクトリ名を指定します。このディレクトリ下にインデクス情報ファイルが作成されます。
  5. ソート用ワークディレクトリ(bes2用)の名称を指定します。

(14) pdloadコマンドでTABLE1のデータをロードします

 
pdload -b -W -c /pdload/column01 TABLE1 /pdload/load01
 

〔説明〕
-b:pdrorgコマンドで-Wオプションを指定して,バイナリ形式で出力したファイルを入力データファイルとするため,-Wを指定します。
-c:列の定義長を変更するため,列構成情報ファイルを指定します。
/pdload/load01:(13)で作成したpdloadコマンドの制御文ファイル名を指定します。

(15) システムログファイルをスワップします

バックアップを取得する前に,pdlogswapコマンドでシステムログファイルをスワップします。

 
pdlogswap -d sys -w
 

〔説明〕
HiRDB/パラレルサーバの場合,-sオプションを指定して,バックアップ対象の全サーバ分pdlogswapコマンドを実行します。

(16) pdcopyコマンドでバックアップを取得します

 
pdcopy -m /rdarea/mast/mast01 -M r
-r RDMAST,RDDIR,RDDIC,RDAREA1,RDAREA2,RDAREA3,RDAREA4
-b /pdcopy/backup02 -p /pdcopy/list02
 

〔説明〕
バックアップを取得するRDエリアを次に示します。
  • マスタディレクトリ用RDエリア
  • データディレクトリ用RDエリア
  • データディクショナリ用RDエリア
  • 移行する表を格納するユーザ用RDエリア及びユーザLOB用RDエリア(RDAREA1〜RDAREA4)
-m:マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。
-M:バックアップ取得モードを指定します。
-r:バックアップを取得するRDエリアの名称を指定します。
-b:バックアップファイル名を指定します。
-p:pdcopyコマンドの処理結果リストの出力先を指定します。
バックアップの取得については,「6. バックアップの取得方法」を参照してください。

(17) pdrelsコマンドでRDAREA1〜RDAREA4の閉塞を解除します

 
pdrels -r RDAREA1,RDAREA2,RDAREA3,RDAREA4
 

 

コマンドの実行後,実行結果が正しいかどうか確認することをお勧めします。コマンドの実行結果の確認方法については,マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。