スケーラブルデータベースサーバ HiRDB Version 8 バッチ高速化機能
![[目次]](FIGURE/CONTENT.GIF)
![[索引]](FIGURE/INDEX.GIF)
![[前へ]](FIGURE/FRONT.GIF)
5.4.2 同期取得時点に回復する場合(関連RDエリアなし)
(1) 障害発生時の状況
RDDATA01(表格納RDエリア),RDLOB01(LOBデータ格納RDエリア)およびRDIDX01(インデクス格納RDエリア)をインメモリ化しました。
障害発生時の状況を次の図に示します。
図5-8 障害発生時の状況(バッファ障害を同期取得時点に回復する場合(関連RDエリアなし))
![[図データ]](FIGURE/ZU050030.GIF)
- [説明]
- RDDATA01,RDLOB01およびRDIDX01をインメモリ化しました。また,このとき,バックアップを取得しました。
- 更新業務を実行し,インメモリデータバッファ上のデータを更新しました。
- pdhold -bコマンドでインメモリデータバッファとRDエリアの同期を取ろうとしましたが,バッファ障害によって,RDDATA01,RDLOB01およびRDIDX01との同期が取れませんでした。
- このときのインメモリデータバッファと各RDエリアの状態を次に示します。
- インメモリデータバッファの状態:バッファ障害
- RDDATA01の状態:障害閉塞状態(同期取得時(インメモリ化時)の状態)
- RDLOB01の状態:障害閉塞状態(同期取得時(インメモリ化時)の状態)
- RDIDX01の状態:障害閉塞状態(同期取得時(インメモリ化時)の状態)
(2) 障害回復の手順
RDDATA01,RDLOB01およびRDIDX01中のデータは同期取得時(インメモリ化時)のままです。RDDATA01,RDLOB01およびRDIDX01のデータを再度インメモリ化してインメモリデータバッファを同期取得時点に回復します。
障害回復の手順を次の図に示します。
図5-9 障害回復の手順(バッファ障害を同期取得時点に回復する場合(関連RDエリアなし))
![[図データ]](FIGURE/ZU050032.GIF)
- [説明]
- RDDATA01,RDLOB01およびRDIDX01のインメモリ化を解除します。
- RDDATA01,RDLOB01およびRDIDX01を再度インメモリ化します。
ただし,RDエリア障害とバッファ障害の両方が発生している場合は,バックアップファイルを使ってRDDATA01,RDLOB01およびRDIDX01を回復したあとにインメモリ化します。
コマンドの実行手順を次に示します。
- RDDATA01,RDLOB01およびRDIDX01をクローズ状態にします。
pdclose -r RDDATA01,RDLOB01,RDIDX01
|
インメモリ化を強制解除するには,RDエリアの状態が障害閉塞クローズ状態になっている必要があるため,ここでRDDATA01,RDLOB01およびRDIDX01をクローズしています。
- RDDATA01,RDLOB01およびRDIDX01のインメモリ化を強制的に解除します。
pdmemdb -k rels -r RDDATA01,RDLOB01,RDIDX01 -d
|
- RDDATA01,RDLOB01およびRDIDX01の障害閉塞クローズを解除します。
pdrels -r RDDATA01,RDLOB01,RDIDX01 -o
|
再度インメモリ化するには,RDエリアの状態がコマンド閉塞クローズ状態になっている必要があるため,ここでいったんRDDATA01,RDLOB01およびRDIDX01の障害閉塞クローズを解除しています。
- RDDATA01,RDLOB01およびRDIDX01をコマンド閉塞クローズ状態にします。
pdhold -r RDDATA01,RDLOB01,RDIDX01 -c
|
- RDDATA01,RDLOB01およびRDIDX01を再度インメモリ化します。
pdmemdb -k stay -r RDDATA01,RDLOB01,RDIDX01
|
これによって,インメモリデータバッファは同期取得時点の状態に回復されました。
- RDDATA01,RDLOB01およびRDIDX01の閉塞クローズを解除します。
pdrels -r RDDATA01,RDLOB01,RDIDX01 -o
|
これによって,業務が再開できるようになりました。
- RDエリア障害かつバッファ障害の場合
- RDエリア障害とバッファ障害の両方が発生している場合は,手順2.でインメモリ化を解除したあと,バックアップファイルからRDエリアを同期取得時点に回復してください。それ以外の手順については,バッファ障害の場合と同じです。
(3) 障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移
障害回復時,インメモリデータバッファの状態およびインメモリRDエリアの状態は次の表のように遷移します。表の項番は,「(2)障害回復の手順」の実行手順の番号と対応しています。なお,表中の実行コマンドは,一部オプションを省略しています。
表5-4 障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移
| 項番 |
実行コマンド |
コマンド実行後のバッファの状態※1 |
コマンド実行後のRDエリアの状態※2 |
| RDDATA01,RDLOB01,RDIDX01 |
| − |
− |
バッファ障害状態 |
障害閉塞かつオープン状態 |
| 1 |
pdclose -r RDDATA01,RDLOB01,RDIDX01 |
↓ |
障害閉塞かつクローズ状態 |
| 2 |
pdmemdb -k rels -r RDDATA01,RDLOB01,RDIDX01 -d |
未使用状態 |
↓ |
| 3 |
pdrels -r RDDATA01,RDLOB01,RDIDX01 -o |
↓ |
オープン状態 |
| 4 |
pdhold -r RDDATA01,RDLOB01,RDIDX01 -c |
↓ |
コマンド閉塞かつクローズ状態 |
| 5 |
pdmemdb -k stay -r RDDATA01,RDLOB01,RDIDX01 |
DB同期状態 |
↓ |
| 6 |
pdrels -r RDDATA01,RDLOB01,RDIDX01 -o |
↓ |
オープン状態 |
- (凡例)
- ↓:状態の変化なし
- −:該当しない
- 注※1 バッファの状態とは,インメモリデータバッファの状態のことです。
- 注※2 RDエリアの状態とは,インメモリRDエリアの状態のことです。
All Rights Reserved. Copyright (C) 2008, 2009, Hitachi, Ltd.