同期取得時点に回復する場合について説明します。関連するRDエリアがあるため,それらも一緒に同期取得時点に戻します。
RDDATA01(表格納RDエリア),RDLOB01(LOBデータ格納RDエリア)およびRDIDX01(インデクス格納RDエリア)をインメモリ化しました。RDLOB02(LOBデータ格納RDエリア)はインメモリ化していません。
障害発生時の状況を次の図に示します。
図5-10 障害発生時の状況(バッファ障害を同期取得時点に回復する場合(関連RDエリアあり))
pdrstrコマンドでRDDATA01,RDLOB01,RDIDX01およびRDLOB02を同期取得時点(インメモリ化時点)に回復します。そのあとに,RDDATA01,RDLOB01およびRDIDX01のデータをインメモリデータバッファに再度インメモリ化します。
障害回復の手順を次の図に示します。
図5-11 障害回復の手順(バッファ障害を同期取得時点に回復する場合(関連RDエリアあり))
コマンドの実行手順を次に示します。
pdrels -r RDDATA01,RDLOB01 |
pdhold -r RDDATA01,RDLOB01,RDLOB02 -c |
pdmemdb -k rels -r RDDATA01,RDLOB01 |
pdclose -r RDIDX01 |
pdmemdb -k rels -r RDIDX01 -d |
pdrstr -m C:¥rdarea¥mast¥mast01 -b C:¥usr¥hirdb¥pdcopy¥backup01 |
pdrels -r RDIDX01 -o |
pdhold -r RDIDX01 -c |
pdmemdb -k stay -r RDDATA01,RDLOB01,RDIDX01 |
pdrels -r RDDATA01,RDLOB01,RDIDX01,RDLOB02 -o |
障害回復時,障害回復時のインメモリデータバッファ,インメモリRDエリアおよびインメモリ化していないRDエリアの状態は次の表のように遷移します。表の項番は,「(2)障害回復の手順」の実行手順の番号と対応しています。なお,表中の実行コマンドは,一部オプションを省略しています。
表5-5 障害回復時のインメモリデータバッファ,インメモリRDエリアおよびインメモリ化していないRDエリアの状態遷移
項番 | 実行コマンド | 正常に書き込みできたRDエリア | 正常に書き込みできなかったRDエリア | インメモリ化していないRDエリア | ||
---|---|---|---|---|---|---|
RDDATA01,RDLOB01 | RDIDX01 | RDLOB02 | ||||
コマンド実行後のバッファの状態※1 | コマンド実行後のRDエリアの状態※2 | コマンド実行後のバッファの状態※1 | コマンド実行後のRDエリアの状態※2 | コマンド実行後のRDエリアの状態 | ||
- | - | DB同期状態 | 参照可能バックアップ閉塞状態 | バッファ障害状態 | 障害閉塞かつオープン状態 | オープン状態 |
1 | pdrels -r RDDATA01,RDLOB01 | ↓ | オープン状態 | ↓ | ↓ | ↓ |
2 | pdhold -r RDDATA01,RDLOB01,RDLOB02 -c | ↓ | コマンド閉塞かつクローズ状態 | ↓ | ↓ | コマンド閉塞かつクローズ状態 |
3 | pdmemdb -k rels -r RDDATA01,RDLOB01 | 未使用状態 | ↓ | ↓ | ↓ | ↓ |
4 | pdclose -r RDIDX01 | ↓ | ↓ | ↓ | 障害閉塞かつクローズ状態 | ↓ |
5 | pdmemdb -k rels -r RDIDX01 -d | ↓ | ↓ | 未使用状態 | ↓ | ↓ |
6 | pdrstr -r RDDATA01,RDLOB01,RDIDX01,RDLOB02 | ↓ | ↓ | ↓ | ↓ | ↓ |
7 | pdrels -r RDIDX01 -o | ↓ | ↓ | ↓ | オープン状態 | ↓ |
8 | pdhold -r RDIDX01 -c | ↓ | ↓ | ↓ | コマンド閉塞かつクローズ状態 | ↓ |
9 | pdmemdb -k stay -r RDDATA01,RDLOB01,RDIDX01 | DB同期状態 | ↓ | DB同期状態 | ↓ | ↓ |
10 | pdrels -r RDDATA01,RDLOB01,RDIDX01,RDLOB02 -o | ↓ | オープン状態 | ↓ | オープン状態 | オープン状態 |