スケーラブルデータベースサーバ HiRDB Version 8 バッチ高速化機能

[目次][索引][前へ][次へ]

5.3 RDエリア障害が発生した場合の回復手順

ここでは,RDエリア障害が発生した場合の回復手順について,例題を使って説明します。

<この節の構成>
(1) 障害発生時の状況
(2) 障害回復の手順
(3) 障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移

(1) 障害発生時の状況

RDDATA01(表格納RDエリア),RDLOB01(LOBデータ格納RDエリア)およびRDIDX01(インデクス格納RDエリア)をインメモリ化しました。RDLOB02(LOBデータ格納RDエリア)はインメモリ化していません。

また,RDDATA01,RDLOB01およびRDIDX01は異なるHiRDBファイルシステム領域に作成されているとします。

障害発生時の状況を次の図に示します。

図5-4 障害発生時の状況(RDエリア障害が発生した場合)

[図データ]

[説明]
  1. RDDATA01,RDLOB01およびRDIDX01をインメモリ化しました。
  2. 更新業務を実行し,インメモリデータバッファとRDLOB02のデータを更新しました。
  3. pdhold -bコマンドでインメモリデータバッファとRDエリアの同期を取りました。このとき,RDDATA01およびRDLOB01への書き込みは正常にできましたが,RDIDX01が書き込みエラーによってRDエリア障害になりました。
このときのインメモリデータバッファと各RDエリアの状態を次に示します。
  • インメモリデータバッファの状態:正常(最新の状態)
  • RDDATA01の状態:正常(最新の状態)
  • RDLOB01の状態:正常(最新の状態)
  • RDIDX01の状態:RDエリア障害
  • RDLOB02の状態:正常(最新の状態)

(2) 障害回復の手順

インメモリデータバッファ上に最新のデータがあるため,インメモリデータバッファとRDIDX01の同期を再度取り,RDIDX01を最新の状態に回復します。

障害回復の手順を次の図に示します。

図5-5 障害回復の手順(RDエリア障害が発生した場合)

[図データ]

コマンドの実行手順を次に示します。

  1. サーバプロセスをリフレッシュします。
     
     pdpfresh -s BES1
     
    ディスク交換を行う場合にこの操作を実行してください。この操作を実行しないとディスクを切り離すことができません。
  2. RDDATA01およびRDLOB01の閉塞を解除します。
     
     pdrels -r RDDATA01,RDLOB01
     
    pdhold -bコマンドを実行したため,RDDATA01およびRDLOB01が参照可能バックアップ閉塞状態になっています。閉塞を解除して,RDDATA01およびRDLOB01に対する更新業務を続行します。
  3. RDIDX01の障害を取り除きます。
    ディスク障害が発生した場合は,マニュアル「HiRDB Version 8 システム運用ガイド」の「ディスク障害が発生したときの対処方法」を参照して対処してください。
  4. インメモリデータバッファとRDIDX01の同期を取ります。
     
     pdhold -r RDIDX01 -b
     
    インメモリデータバッファ上のデータがRDIDX01に書き込まれました。これによって,RDIDX01は最新の状態に回復されました。
  5. RDIDX01の閉塞を解除します。
     
     pdrels -r RDIDX01
     
    参考
    RDエリア障害の回復を行う場合は,バックアップファイルを使用しません。

(3) 障害回復時のインメモリデータバッファおよびインメモリRDエリアの状態遷移

障害回復時,インメモリデータバッファの状態およびインメモリ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 オープン状態

(凡例)
↓:状態の変化なし
−:該当しない

注※1 バッファの状態とは,インメモリデータバッファの状態のことです。

注※2 RDエリアの状態とは,インメモリRDエリアの状態のことです。