ここでは,RDエリア障害が発生した場合の回復手順について,例題を使って説明します。
RDDATA01(表格納RDエリア),RDLOB01(LOBデータ格納RDエリア)およびRDIDX01(インデクス格納RDエリア)をインメモリ化しました。RDLOB02(LOBデータ格納RDエリア)はインメモリ化していません。
また,RDDATA01,RDLOB01およびRDIDX01は異なるHiRDBファイルシステム領域に作成されているとします。
障害発生時の状況を次の図に示します。
図5-4 障害発生時の状況(RDエリア障害が発生した場合)
インメモリデータバッファ上に最新のデータがあるため,インメモリデータバッファとRDIDX01の同期を再度取り,RDIDX01を最新の状態に回復します。
障害回復の手順を次の図に示します。
図5-5 障害回復の手順(RDエリア障害が発生した場合)
コマンドの実行手順を次に示します。
pdpfresh -s BES1 |
pdrels -r RDDATA01,RDLOB01 |
pdhold -r RDIDX01 -b |
pdrels -r RDIDX01 |
障害回復時,インメモリデータバッファの状態およびインメモリRDエリアの状態は次の表のように遷移します。表の項番は,「(2)障害回復の手順」の実行手順の番号と対応しています。なお,表中の実行コマンドは,一部オプションを省略しています。
表5-2 障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移
項番 | 実行コマンド | 障害が発生したRDエリア | 障害が発生していないRDエリア | ||
---|---|---|---|---|---|
RDIDX01 | RDDATA01,RDLOB01 | ||||
コマンド実行後のバッファの状態※1 | コマンド実行後のRDエリアの状態※2 | コマンド実行後のバッファの状態※1 | コマンド実行後のRDエリアの状態※2 | ||
- | - | RDエリア障害状態 | 障害閉塞かつオープン状態 | DB同期状態 | 参照可能バックアップ閉塞状態 |
1 | pdpfresh | ↓ | ↓ | ↓ | ↓ |
2 | pdrels -r RDDATA01,RDLOB01 | ↓ | ↓ | ↓ | オープン状態 |
3 | - | ↓ | ↓ | ↓ | ↓ |
4 | pdhold -r RDIDX01 -b | DB同期状態 | 参照可能バックアップ閉塞状態 | ↓ | ↓ |
5 | pdrels -r RDIDX01 | ↓ | オープン状態 | ↓ | ↓ |