5.1.1 障害の種類と回復方法を決めるときの基準
ここでは,インメモリデータ処理中に発生した障害を回復するときの,基本的な考え方について説明します。
- 注意事項
-
HiRDBが異常終了して再開始した場合,異常終了する前までの更新情報はRDエリアに反映されません(HiRDBが自動的に最新の状態に回復することはありません)。また,インメモリデータバッファはなくなり,インメモリ化が解除された状態になります。
- 〈この項の構成〉
(1) 障害の種類
インメモリデータ処理中に障害が発生した場合,インメモリデータバッファの状態とRDエリアの状態を確認する必要があります。
インメモリデータ処理中の障害には,次の3種類があります。
- RDエリア障害
-
RDエリアに障害が発生している状態です。
RDエリアの障害を取り除いたあと,インメモリデータバッファ上のデータをRDエリアに書き込むことで回復できます。インメモリデータバッファ上のデータは最新であるため,RDエリアも最新の状態に回復できます。
- バッファ障害
-
インメモリデータバッファに障害が発生している状態です。
最新の状態に回復する場合は,いったんインメモリ化を解除してから,アンロードログファイルを使ってpdrstrコマンドでRDエリアを最新の状態に回復し,再度インメモリ化します。または,インメモリ化したままアンロードログファイルを使ってpdrstrコマンドでRDエリアを最新の状態に回復し,その内容をインメモリデータバッファに再読み込みします。
同期取得時点に回復する場合は,いったんインメモリ化を解除してから,RDエリアを再度インメモリ化します。または,RDエリアの内容をインメモリデータバッファに再読み込みします。
- RDエリア障害かつバッファ障害
-
インメモリデータバッファとRDエリアの両方に障害が発生している状態です。
最新の状態に回復する場合は,バックアップファイルとアンロードログファイルを使ってpdrstrコマンドでRDエリアを最新の状態に回復し,その内容を再度インメモリ化します。
同期取得時点に回復する場合は,バックアップファイルを使ってpdrstrコマンドでRDエリアを同期取得時点に回復し,その内容を再度インメモリ化します。
これらの障害状態については,pddbls -Mコマンドで確認できます。詳細については,「障害が発生したときに最初に確認すること」を参照してください。
- ポイント
-
バッファ障害で,かつRDエリアが障害閉塞クローズ状態のときだけ,データベース回復ユティリティ(pdrstr)を実行できます。RDエリア障害が発生している場合(RDエリア障害かつバッファ障害を含む)は,一度インメモリ化を解除してから回復する必要があります。
(2) 回復方法を決めるときの基準
バッファ障害が発生している場合,回復方法は次の条件によって異なります。
-
どの時点に回復するか(最新の状態か,または同期取得時点か)
-
同期取得時点に回復する場合,関連RDエリアがあるか
詳細については,図「回復手順の参照先を決めるフローチャート」を参照してください。