21.6.3 例題3(全RDエリアを最新の同期点に回復する場合)
システム用RDエリアを含む全RDエリアを障害発生直前の最新の同期点に回復します。バックアップは,システム単位で取得したバックアップ(全RDエリアを対象としたバックアップ)があります。システムログファイルの運用方法は,システムログをアンロードする運用をしています。
- 〈この項の構成〉
-
(1) pdloglsコマンドで現用のシステムログファイルを調べます
HiRDB/パラレルサーバの場合は,ディクショナリサーバ及びバックエンドサーバのシステムログファイルを調べてください。
pdlogls -d sys
(2) pdlogswapコマンドでシステムログファイルをスワップします
現用ファイルの内容をアンロードするため,システムログファイルをスワップします。HiRDB/パラレルサーバの場合は,ディクショナリサーバ及びバックエンドサーバのシステムログファイルをスワップしてください。
pdlogswap -d sys
(3) 現用だったファイルの内容をpdlogunldコマンドでアンロードします
(1)で調べた現用ファイルの内容をアンロードしてください。HiRDB/パラレルサーバの場合は,ディクショナリサーバ及びバックエンドサーバの現用ファイルの内容をアンロードしてください。
pdlogunld -d sys -g log01 -o C:\unld\unldlog02
(4) pdstopコマンドでHiRDBを正常終了します
HiRDBを正常終了できない場合は,pdstop -fコマンドで強制終了します。なお,既にHiRDBが異常終了している場合は,この手順は必要ありません。
pdstop
(5) すべてのRDエリアをバックアップ取得時点に回復します
ほかの製品のリストア機能で,すべてのRDエリアをバックアップ取得時点に回復します。
(6) pdstart -rコマンドでHiRDBを開始します
pdstart -r
(7) pdrstrコマンドですべてのRDエリアを最新の同期点に回復します※
pdrstr -m C:\rdarea\mast\mast01 -l C:\unld\unldlog01,C:\unld\unldlog02 -w C:\tmp\sortwork -a
- 〔説明〕
-
-m:マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。
-l:アンロードログファイルの名称を指定します。
-w:ソート用ワークディレクトリの名称を指定します。
-a:すべてのRDエリアを対象にします。
- 注※
-
オブジェクト格納用データディクショナリLOB用RDエリアを使用している場合,ログを使った回復でシステムログを取得しないトランザクションが動作していることを検知(KFPR16334-E)することがあります。
オブジェクト格納用データディクショナリLOB用RDエリアについては,(11)で回復(初期化)するため,エラーを無視して問題ありません。データベース回復ユティリティでエラーメッセージを出力しないようにするためには,-rオプションでオブジェクト格納用データディクショナリLOB用RDエリア以外のRDエリアだけ指定してください。
(8) pdstopコマンドでHiRDBを正常終了します
pdstop
(9) 全RDエリアのバックアップを取得します
ほかの製品のバックアップ機能で全RDエリアのバックアップを取得します。
(10) pdstartコマンドでHiRDBを開始します
pdstart
(4)の手順でHiRDBを正常終了できなかった場合は,HiRDBを開始する前にシステムログファイル,シンクポイントダンプファイル,及びステータスファイルを初期化してください。
システムログファイル,及びシンクポイントダンプファイルを初期化しない場合,一部のファイルがクローズ状態となることがあります。この場合,クローズ状態となったファイルについては,「システムログファイルに障害が発生したときの対処方法」を参照し,使用できる状態にしてください。
(11) オブジェクト格納用データディクショナリLOB用RDエリアを回復します
データディクショナリLOB用RDエリアがない場合は,この手順は必要ありません。
- 〈手順〉
-
-
オブジェクト格納用データディクショナリLOB用RDエリアを閉塞クローズします。
pdhold -r RDDICOBJ -c
-
pdmodコマンドで,オブジェクト格納用データディクショナリLOB用RDエリアを再初期化します。
pdmod -a c:\rdarea\conf\control2
-
オブジェクト格納用データディクショナリLOB用RDエリアを閉塞解除,オープンします。
pdrels -r RDDICOBJ -o
-
ALTER ROUTINEで,全ストアドルーチン及び全トリガのSQLオブジェクトを再作成します。
ALTER ROUTINE ALL
-
(12) リスト用RDエリアを回復します
リスト用RDエリアがない場合は,この手順は必要ありません。
- 〈手順〉
-
-
リスト用RDエリアを閉塞クローズします。
pdhold -r LISER1 -c
-
pdmodコマンドでRDエリアを再初期化します。
pdmod -a c:\rdarea\conf\control3
-
リスト用RDエリアを閉塞解除,オープンします。
pdrels -r LISER1 -o
-
(13) 一時表用RDエリアを回復します
一時表用RDエリアがない場合は,この手順は必要ありません。
- 〈手順〉
-
-
一時表用RDエリアを閉塞クローズします。
pdhold -r TMPRDAREA -c
-
pdmodコマンドでRDエリアを再初期化します。
pdmod -a c:\rdarea\conf\control4
-
一時表用RDエリアを閉塞解除,オープンします。
pdrels -r TMPRDAREA -o
-