スケーラブルデータベースサーバ HiRDB ファーストステップガイド(UNIX(R)用)

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

4.5.3 演習2(RDエリアを最新の状態に回復する

ユーザ用RDエリア(RDDATA10)を最新の状態に回復します。

<この項の構成>
(1) pdholdコマンドでRDDATA10を閉塞,クローズ状態にします
(2) pdholdコマンドの実行結果が表示されます
(3) 必要なバックアップファイルとアンロードログファイルを特定します
(4) pdloglsコマンドでシステムログファイルを調べます
(5) pdloglsコマンドの実行結果が表示されます
(6) pdlogswapコマンドで現用ファイル(logfg01)をスワップします
(7) pdlogunldコマンドでlogfg04およびlogfg01の内容をアンロードします
(8) pdlogunldコマンドの実行結果が表示されます
(9) pdrstrコマンドでRDDATA10を回復します
(10) pdrstrコマンドの実行結果が表示されます
(11) pdcopyコマンドでRDDATA10のバックアップを取得します
(12) pdcopyコマンドの実行結果が表示されます
(13) pdrelsコマンドでRDDATA10の閉塞を解除してオープンします
(14) pdrelsコマンドの実行結果が表示されます

(1) pdholdコマンドでRDDATA10を閉塞,クローズ状態にします

回復するRDエリアを閉塞,クローズ状態にします。次のコマンドを実行してください。回復するRDエリアが障害閉塞している場合は,pdcloseコマンドでクローズしてください。

 
$ pdhold -r RDDATA10 -c 
 

(2) pdholdコマンドの実行結果が表示されます

 
2991 18:13:23 SDSU sds1     KFPH00130-I RDAREA held, RDAREA = "RDDATA10"
2991 18:13:23 SDSU sds1     KFPH00130-I RDAREA closed, RDAREA = "RDDATA10"
2991 18:13:23 SDSU sds1     KFPH00110-I pdhold command completed
 

(3) 必要なバックアップファイルとアンロードログファイルを特定します

バックアップファイルには,「4.4 バックアップを取得する」の演習2で取得したRDDATA10のバックアップを格納したバックアップファイルを使用します。バックアップファイル名は,$HOME/hirdb/pdcopy/backup02です。

さらに,このバックアップを取得したとき以降に出力されたシステムログを格納したアンロードログファイルが必要になります。バックアップを取得したとき以降に出力されたシステムログは,アンロード待ちのシステムログファイルおよび現用のシステムログファイルに格納されています。したがって,これらのシステムログファイルの内容をアンロードする必要があります。

留意事項
バックアップは,「4.4 バックアップを取得する」の演習1で取得した全RDエリアのバックアップでもかまいません。全RDエリアのバックアップからでも,特定のRDエリアを回復できます。

(4) pdloglsコマンドでシステムログファイルを調べます

現用のシステムログファイルとアンロード待ちファイルを調べます。次のコマンドを実行してください。

 
$ pdlogls -d sys 
 

(5) pdloglsコマンドの実行結果が表示されます

 
HOSTNAME : HIRLIN_SV(181347)
Group    Type Server   Gen No.  Status  Run ID    Block No.    Ex-Status
logfg01  sys  sds1            1 oc-d--u 401f65f0        1    5  --------
logfg02  sys  sds1            1 os----u 401f5271        1   40  --------
logfg03  sys  sds1            1 os----u 401f60de        1    8  --------
logfg04  sys  sds1            2 osu---u 401f60de        9    a  --------
logfg05  sys  sds1            0 os----- 00000000        0    0  --------
logfg06  sys  sds1            0 os----- 00000000        0    0  --------
 

〔説明〕
Statusの2カラム目がcになっているlogfg01が現用のファイルです。また,Statusの3カラム目がuになっているlogfg04がアンロード待ちファイルです。

(6) pdlogswapコマンドで現用ファイル(logfg01)をスワップします

現用ファイルをスワップします。次のコマンドを実行してください。

 
$ pdlogswap -d sys 
 

〔説明〕
RDエリアを最新の状態に回復するには,バックアップ取得以降に出力されたシステムログが必要です。したがって,現用ファイルに格納されているシステムログが必要になります。現用ファイルはアンロードできないため,pdlogswapコマンドで現用ファイルをいったんスワップします。

(7) pdlogunldコマンドでlogfg04およびlogfg01の内容をアンロードします

pdlogunldコマンドでlogfg04およびlogfg01の内容をアンロードします。次の例では,実行するコマンドをまとめて記述しています。実際に実行するときは,1コマンドずつ実行してください。

 
sh-2.05$ pdlogunld -d sys -g logfg04 -o $HOME/HiRDB/pdlogunld/unlog04
 
sh-2.05$ pdlogunld -d sys -g logfg01 -o $HOME/HiRDB/pdlogunld/unlog05
 

(8) pdlogunldコマンドの実行結果が表示されます

 
3048 18:15:05 SDSU          KFPS01271-I Unloading completed.
 generation number=2, start block number=9, end block number=a
3053 18:15:31 SDSU          KFPS01271-I Unloading completed.
 generation number=1, start block number=1, end block number=6
 

(9) pdrstrコマンドでRDDATA10を回復します

バックアップファイルとバックアップ取得以降の情報が格納されたアンロードログファイルを指定して,RDエリアを回復します。次のコマンドを実行してください。

 
$ pdrstr -m /HiRDB/rdfiles/master -r RDDATA10
 -b $HOME/HiRDB/pdcopy/backup02
 -l $HOME/HiRDB/pdlogunld/unlog01
    $HOME/HiRDB/pdlogunld/unlog02
    $HOME/HiRDB/pdlogunld/unlog03
    $HOME/HiRDB/pdlogunld/unlog04
    $HOME/HiRDB/pdlogunld/unlog05
 -w /tmp -p $HOME/HiRDB/pdrstr/list02.txt
 

〔説明〕
-m
マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称(/HiRDB/rdfiles/master)を指定します。
-r
回復対象のRDエリアを指定します。
-b
バックアップファイル名を指定します。「4.4 バックアップを取得する」の演習2で取得したRDDATA10のバックアップファイル($HOME/HiRDB/pdcopy/backup02)を指定します。
-l
アンロードログファイル名を指定します。-bで指定したバックアップファイルを取得したあとに取得したシステムログファイルのアンロードログファイルを古い順に指定します。
-w
ソート用ワークディレクトリの名称を指定します。
-p
pdrstrコマンドの処理結果リストの出力先を指定します。$HOME/HiRDB/pdrstrディレクトリ下にlist02.txtファイルが作成されます。

(10) pdrstrコマンドの実行結果が表示されます

 
3085 18:19:46 SDSU _pd0rstr KFPR00764-I Pdrstr started
3085 18:19:46 SDSU _pd0rstr KFPR26222-I Output result of
 pdrstr to /home/hirman/HiRDB/pdrstr/list02.txt
3085 18:19:46 SDSU _pd0rstr KFPR00765-I Pdrstr terminated,
 return code=0
 

〔説明〕
リターンコードに0が返されたので,RDDATA10の回復に成功しました。

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

データベース回復直後の最新の状態で,バックアップを取得します。次のコマンドを実行してください。

 
$ pdcopy -m /HiRDB/rdfiles/master -r RDDATA10 -M x
 -b $HOME/HiRDB/pdcopy/backup03
 -p $HOME/HiRDB/pdcopy/list03.txt
 

〔説明〕
-m
マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称(/HiRDB/rdfiles/master)を指定します。
-r
バックアップを取得するRDエリアを指定します。
-M
バックアップ取得モードを指定します。
-b
バックアップファイル名を指定します。
$HOME/HiRDB/pdcopyディレクトリ下にbackup03ファイルが作成されます。
-p
pdcopyコマンドの処理結果リストの出力先を指定します。$HOME/HiRDB/pdcopyディレクトリ下にlist03.txtファイルが作成されます。

(12) pdcopyコマンドの実行結果が表示されます

 
2672 18:20:48 unt1 _pd0copy KFPR00754-I Pdcopy started
2104 18:20:49 unt1 0bcpy00  KFPR26109-I Backup completed,
 file=/home/hirman/HiRDB/pdcopy/backup03
2672 18:20:49 unt1 _pd0copy KFPR26022-I Output result of
 pdcopy to /home/hirman/HiRDB/pcopy/list03.txt
2672 18:20:49 unt1 _pd0copy KFPR00756-I Pdcopy terminated,
 return code=0
 

〔説明〕
バックアップが取得されました。

(13) pdrelsコマンドでRDDATA10の閉塞を解除してオープンします

回復処理が終了したので,RDエリアの閉塞を解除します。次のコマンドを実行してください。

 
$ pdrels -r RDDATA10 -o
 

(14) pdrelsコマンドの実行結果が表示されます

 
2991 18:22:13 SDSU sds1     KFPH00130-I RDAREA released, RDAREA = "RDDATA10"
2991 18:22:13 SDSU sds1     KFPH00130-I RDAREA opened, RDAREA = "RDDATA10"
2991 18:22:13 SDSU sds1     KFPH00110-I pdrels command completed