15.4.10 例題9(RDエリアのディスク配置を変更する場合)
ユーザ用RDエリア(RDAREA1,RDAREA2)とユーザLOB用RDエリア(RDAREA3,RDAREA4,RDAREA5)を再初期化します。このとき,RDエリアのディスク配置をC:\rdareaからD:\rdarea2に変更します。
-
RDAREA1には表(TABLE1)のLOB列構成基表及び抽象データ型列構成基表が格納されています。TABLE1には,プラグインが提供する抽象データ型(SGMLTEXT型)が定義されています。
-
TABLE1にはインデクス(INDEX1)が定義されています。インデクスはユーザ用RDエリア(RDAREA2)に格納されています。
-
LOBデータは,ユーザLOB用RDエリア(RDAREA3)に格納されています。
-
SGMLTEXTデータは,ユーザLOB用RDエリア(RDAREA4)に格納されています。
-
プラグインインデクスは,ユーザLOB用RDエリア(RDAREA5)に格納されています。
- 〈手順〉
-
-
HiRDBファイルシステム領域を準備します。
-
pdholdコマンドでRDAERA1〜RDAREA5を閉塞します。
-
pdlogswap -d sys -wコマンドで,システムログファイルをスワップします。
-
pdcopyコマンドでバックアップを取得します。
-
pdrorgコマンドの制御文ファイルを作成します。
-
pdrorgコマンドでTABLE1のデータをアンロードします。
-
pdcloseコマンドでRDAERA1〜RDAREA5をクローズします。
-
pdmodコマンドの制御文ファイルを作成します。
-
pdmodコマンドでRDAERA1〜RDAREA5を再初期化します。
-
pdopenコマンドでRDAERA1〜RDAREA5をオープンします。
-
pdrorgコマンドの制御文ファイルを作成します。
-
pdrorgコマンドでTABLE1のデータをリロードします。
-
pdlogswap -d sys -wコマンドで,システムログファイルをスワップします。
-
pdcopyコマンドでバックアップを取得します。
-
pdrelsコマンドでRDAERA1〜RDAREA5の閉塞を解除します。
手順の数字はこの後で説明している( )レベルに対応しています。例えば,3の操作は(3)で説明しています。
-
- 〈この項の構成〉
-
(1) HiRDBファイルシステム領域を準備します
新しくRDエリアを配置するディスク(D:\rdarea2)にHiRDBファイルシステム領域を準備してください。
pdfmkfs -n 100 -l 10 -k DB -i D:\rdarea2\area11 pdfmkfs -n 100 -l 10 -k DB -i D:\rdarea2\area12 pdfmkfs -n 100 -l 10 -k DB -i D:\rdarea2\area13 pdfmkfs -n 100 -l 10 -k DB -i D:\rdarea2\area14 pdfmkfs -n 100 -l 10 -k DB -i D:\rdarea2\area15
-n及び-lオプションには,変更前のディスク(C:\rdarea)に作成していたHiRDBファイルシステム領域と同じか,又は大きい値を指定してください。
(2) pdholdコマンドでRDAERA1〜RDAREA5を閉塞します
pdhold -r RDAREA1,RDAREA2,RDAREA3,RDAREA4,RDAREA5
(3) pdlogswap -d sys -wコマンドで,システムログファイルをスワップします
pdlogswap -d sys -w
(4) pdcopyコマンドでバックアップを取得します
pdcopy -m C:\rdarea\mast\mast01 -M r -a -b C:\pdcopy\backup01 -p C:\pdcopy\list01
- 〔説明〕
-
-m:マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。
-M:バックアップ取得モードを指定します。
-a:このオプションを指定すると,全RDエリアのバックアップを取得します。RDエリアを再初期化すると,「同時にバックアップを取得する必要があるRDエリア」で説明しているRDエリアが更新されるため,6.3で説明しているRDエリアのバックアップを取得する必要があります。ここでは全RDエリアのバックアップを取得します。
-b:バックアップファイル名を指定します。
-p:pdcopyコマンドの処理結果リストの出力先を指定します。
バックアップの取得については,「バックアップの取得方法」を参照してください。
(5) pdrorgコマンドの制御文ファイルを作成します
pdrorgコマンドのunload文を記述した制御文ファイル(C:\pdrorg\unld01)を作成します。制御文ファイルの内容を次に示します。
unload C:\unld\unldfile
- 〔説明〕
-
アンロードファイルの名称を指定します。
(6) pdrorgコマンドでTABLE1のデータをアンロードします
pdrorg -k unld -j -t TABLE1 C:\pdrorg\unld01
- 〔説明〕
-
-k:アンロードをするためunldを指定します。
-j:次に示す表をアンロードする場合に指定します。
・LOB列がある表
・LOB属性の抽象データ型を定義した表
-t:アンロードする表の名称を指定します。
C:¥pdrorg¥unld01:(5)で作成したpdrorgコマンドの制御文ファイル名を指定します。
(7) pdcloseコマンドでRDAERA1〜RDAREA5をクローズします
pdclose -r RDAREA1,RDAREA2,RDAREA3,RDAREA4,RDAREA5
(8) pdmodコマンドの制御文ファイルを作成します
pdmodコマンドのinitialize rdarea文を記述した制御文ファイル(C:\pdmod\init01)を作成します。制御文ファイルの内容を次に示します。
initialize rdarea RDAREA1 1 with reconstruction 2 file name "D:\rdarea2\area11\file01" 3 initial 3000 segments; 4 initialize rdarea RDAREA2 with reconstruction file name "D:\rdarea2\area12\file01" initial 3000 segments; initialize rdarea RDAREA3 with reconstruction file name "D:\rdarea2\area13\file01" initial 3000 segments; initialize rdarea RDAREA4 with reconstruction file name "D:\rdarea2\area14\file01" initial 3000 segments; initialize rdarea RDAREA5 with reconstruction file name "D:\rdarea2\area15\file01" initial 3000 segments;
- 〔説明〕
-
再初期化するRDエリアには新規追加したHiRDBファイルシステム領域を割り当てます。
-
再初期化するRDエリアを指定します。
-
再初期化前とファイル構成が変わるため,with reconstructionを指定します。
-
RDエリアを構成するHiRDBファイルを指定します。新しくRDエリアを配置するディスク(D:\rdarea2)を指定します。
-
HiRDBファイルのセグメント数を指定します。変更前のディスク(C:\rdarea)に作成していたHiRDBファイルと同じか,又は大きい値を指定してください。
-
(9) pdmodコマンドでRDAERA1〜RDAREA5を再初期化します
pdmod -a C:\pdmod\init01
- 〔説明〕
-
-a:(8)で作成したpdmodコマンドの制御文ファイル名を指定します。
- 参考
-
RDAREA1の再初期化時,KFPX14255-W,KFPX24231-W,及びKFPX24242-WのRDエリア状態不正メッセージが出力されます。これは,RDAREA2〜RDAREA5を同時に再初期化しているためで問題はありません。また,RDAREA2,RDAREA4,RDAREA5の再初期化時,インデクスが未完状態に,LOB属性の抽象データ型がアクセス禁止状態になりますが,(12)のデータのリロード時にそれぞれ解除されるため問題ありません。
(10) pdopenコマンドでRDAERA1〜RDAREA5をオープンします
pdopen -r RDAREA1,RDAREA2,RDAREA3,RDAREA4,RDAREA5
(11) pdrorgコマンドの制御文ファイルを作成します
pdrorgコマンドのunload文,index文,及びsort文を記述した制御文ファイル(C:\pdrorg\reld01)を作成します。制御文ファイルの内容を次に示します。
unload C:\unld\unldfile 1 index INDEX1 C:\unld\index_inf 2 sort C:\tmp\sortwork 3
- 〔説明〕
-
-
アンロードファイルの名称を指定します。
-
インデクス識別子(INDEX1),及びインデクス情報ファイル名(C:\unld\index_inf)を指定します。
-
ソート用ワークディレクトリの名称を指定します。
-
(12) pdrorgコマンドでTABLE1のデータをリロードします
pdrorg -k reld -j -t TABLE1 C:\pdrorg\reld01
- 〔説明〕
-
-k:リロードをするためにreldを指定します。
-j:次に示す表をリロードする場合に指定します。
・LOB列がある表
・LOB属性の抽象データ型を定義した表
-t:リロードする表の名称を指定します。
C:¥pdrorg¥reld01:(11)で作成したpdrorgコマンドの制御文ファイル名を指定します。
(13) pdlogswap -d sys -wコマンドで,システムログファイルをスワップします
pdlogswap -d sys -w
(14) pdcopyコマンドでバックアップを取得します
pdcopy -m C:\rdarea\mast\mast01 -M r -a -b C:\pdcopy\backup02 -p C:\pdcopy\list02
RDエリアを再初期化すると,「同時にバックアップを取得する必要があるRDエリア」で説明しているRDエリアが更新されるため,6.3で説明しているRDエリアのバックアップを取得する必要があります。ここでは全RDエリアのバックアップを取得します。バックアップの取得については,「バックアップの取得方法」を参照してください。
(15) pdrelsコマンドでRDAERA1〜RDAREA5の閉塞を解除します
pdrels -r RDAREA1,RDAREA2,RDAREA3,RDAREA4,RDAREA5
コマンドの実行後,実行結果が正しいかどうか確認することをお勧めします。コマンドの実行結果の確認方法については,マニュアル「HiRDB コマンドリファレンス」を参照してください。