15.4.9 例題8(表に関連する全RDエリアを再初期化してデータの回復をUAPで行う場合)
ユーザ用RDエリア(RDAREA1,RDAREA2)とユーザLOB用RDエリア(RDAREA3,RDAREA4,RDAREA5)を再初期化します。このとき,RDエリアの容量を大きくします。
-
RDAREA1には,表(TABLE1)のLOB列構成基表及び抽象データ型列構成基表が格納されています。TABLE1には,プラグインが提供する抽象データ型(SGMLTEXT型)が定義されています。
-
TABLE1にはインデクス(INDEX1)が定義されています。インデクスはユーザ用RDエリア(RDAREA2)に格納されています。
-
LOBデータは,ユーザLOB用RDエリア(RDAREA3)に格納されています。
-
SGMLTEXTデータは,ユーザLOB用RDエリア(RDAREA4)に格納されています。
-
プラグインインデクスは,ユーザLOB用RDエリア(RDAREA5)に格納されています。
- 〈手順〉
-
-
pdfstatfsコマンドでHiRDBファイルシステム領域に空きがあるか確認します。
-
HiRDBファイルシステム領域を準備します。
-
pdholdコマンドでRDAERA1〜RDAREA5を閉塞及びクローズ状態にします。
-
pdlogswap -d sys -wコマンドで,システムログファイルをスワップします。
-
pdcopyコマンドでバックアップを取得します。
-
pdmodコマンドの制御文ファイルを作成します。
-
pdmodコマンドでRDAERA2〜RDAREA5を再初期化します。
-
pdrelsコマンドでRDAREA2〜RDAREA5を閉塞解除してオープン状態にします。
-
pdmodコマンドの制御文ファイルを作成します。
-
pdmodコマンドでRDAREA1を再初期化します。
-
pdrelsコマンドでRDAREA1を閉塞解除してオープン状態にします。
-
UAPを実行します。
-
pdlogswap -d sys -wコマンドで,システムログファイルをスワップします。
-
pdcopyコマンドでバックアップを取得します。
手順の数字はこの後で説明している( )レベルに対応しています。例えば,3の操作は(3)で説明しています。
-
- 〈この項の構成〉
-
(1) pdfstatfsコマンドでHiRDBファイルシステム領域に空きがあるか確認します
pdfstatfs /rdarea/area01 pdfstatfs /rdarea/area02 pdfstatfs /rdarea/area03 pdfstatfs /rdarea/area04 pdfstatfs /rdarea/area05
再初期化対象RDエリアのすべてのHiRDBファイルシステム領域を確認してください。
(2) HiRDBファイルシステム領域を準備します
(1)の結果,HiRDBファイルシステム領域に空きがないとします。再初期化するときにRDエリアの容量を大きくするため,次に示すどれかの方法でHiRDBファイルシステム領域を準備してください。
-
既存のHiRDBファイルシステム領域より大きいHiRDBファイルシステム領域を新規に割り当てる
-
既存のHiRDBファイルシステム領域に加えて新規のHiRDBファイルシステム領域を割り当てる
-
既存のHiRDBファイルシステム領域を大きくする
ここでは,1の方法でHiRDBファイルシステム領域を準備します。
pdfmkfs -n 100 -l 10 -k DB -i /rdarea/area11 pdfmkfs -n 100 -l 10 -k DB -i /rdarea/area12 pdfmkfs -n 100 -l 10 -k DB -i /rdarea/area13 pdfmkfs -n 100 -l 10 -k DB -i /rdarea/area14 pdfmkfs -n 100 -l 10 -k DB -i /rdarea/area15
(3) pdholdコマンドでRDAERA1〜RDAREA5を閉塞及びクローズ状態にします
pdhold -r RDAREA1,RDAREA2,RDAREA3,RDAREA4,RDAREA5 -c
(4) pdlogswap -d sys -wコマンドで,システムログファイルをスワップします
pdlogswap -d sys -w
(5) pdcopyコマンドでバックアップを取得します
pdcopy -m /rdarea/mast/mast01 -M r -a -b /pdcopy/backup01 -p /pdcopy/list01
- 〔説明〕
-
-m:マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。
-M:バックアップ取得モードを指定します。
-a:このオプションを指定すると,全RDエリアのバックアップを取得します。RDエリアを再初期化すると,「同時にバックアップを取得する必要があるRDエリア」で説明しているRDエリアが更新されるため,6.3で説明しているRDエリアのバックアップを取得する必要があります。ここでは全RDエリアのバックアップを取得します。
-b:バックアップファイル名を指定します。
-p:pdcopyコマンドの処理結果リストの出力先を指定します。
バックアップの取得については,「バックアップの取得方法」を参照してください。
(6) pdmodコマンドの制御文ファイルを作成します
pdmodコマンドのinitialize rdarea文を記述した制御文ファイル(/pdmod/init01)を作成します。制御文ファイルの内容を次に示します。
initialize rdarea RDAREA2 1 with reconstruction 2 file name "/rdarea/area12/files01" 3 initial 3000 segments; 4 initialize rdarea RDAREA3 with reconstruction file name "/rdarea/area13/files01" initial 3000 segments; initialize rdarea RDAREA4 with reconstruction file name "/rdarea/area14/files01" initial 3000 segments; initialize rdarea RDAREA5 with reconstruction file name "/rdarea/area15/files01" initial 3000 segments;
- 〔説明〕
-
再初期化するRDエリアには新規追加したHiRDBファイルシステム領域を割り当てます。
-
再初期化するRDエリアを指定します。
-
再初期化前とファイル構成が変わるため,with reconstructionを指定します。
-
RDエリアを構成するHiRDBファイルを指定します。
-
HiRDBファイルのセグメント数を指定します。
-
(7) pdmodコマンドでRDAERA2〜RDAREA5を再初期化します
pdmod -a /pdmod/init01
- 〔説明〕
-
-a:(6)で作成したpdmodコマンドの制御文ファイル名を指定します。
- 参考
-
RDAREA2,RDAREA4,RDAREA5の再初期化時,インデクスが未完状態に,LOB属性の抽象データ型がアクセス禁止状態になりますが,(10)のRDAREA1の再初期化時にそれぞれ解除されるため問題ありません。
(8) pdrelsコマンドでRDAREA2〜RDAREA5を閉塞解除してオープン状態にします
pdrels -r RDAREA2,RDAREA3,RDAREA4,RDAREA5 -o
(9) pdmodコマンドの制御文ファイルを作成します
pdmodコマンドのinitialize rdarea文を記述した制御文ファイル(/pdmod/init02)を作成します。制御文ファイルの内容を次に示します。
initialize rdarea RDAREA1 1 with reconstruction 2 file name "/rdarea/area11/file01" 3 initial 3000 segments; 4
- 〔説明〕
-
RDAREA1には新規追加したHiRDBファイルシステム領域を割り当てます。
-
再初期化するRDエリア(RDAREA1)を指定します。
-
再初期化前とファイル構成が変わるため,with reconstructionを指定します。
-
RDエリアを構成するHiRDBファイルを指定します。
-
HiRDBファイルのセグメント数を指定します。
-
(10) pdmodコマンドでRDAREA1を再初期化します
pdmod -a /pdmod/init02
- 〔説明〕
-
-a:(9)で作成したpdmodコマンドの制御文ファイル名を指定します。
(11) pdrelsコマンドでRDAREA1を閉塞解除してオープン状態にします
pdrels -r RDAREA1 -o
(12) UAPを実行します
TABLE1にデータを挿入するUAPを実行してデータを回復します。
(13) pdlogswap -d sys -wコマンドで,システムログファイルをスワップします
pdlogswap -d sys -w
(14) pdcopyコマンドでバックアップを取得します
pdcopy -m /rdarea/mast/mast01 -M r -a -b /pdcopy/backup02 -p /pdcopy/list02
RDエリアを再初期化すると,「同時にバックアップを取得する必要があるRDエリア」で説明しているRDエリアが更新されるため,6.3で説明しているRDエリアのバックアップを取得する必要があります。ここでは全RDエリアのバックアップを取得します。バックアップの取得については,「バックアップの取得方法」を参照してください。
コマンドの実行後,実行結果が正しいかどうか確認することをお勧めします。コマンドの実行結果の確認方法については,マニュアル「HiRDB コマンドリファレンス」を参照してください。