スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)

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

19.6.1 現用ファイルに障害が発生したときの対処方法

<この項の構成>
(1) HiRDBの稼働中に障害が発生した場合
(2) HiRDBの再開始処理中に障害が発生した場合
(3) 障害が発生したファイルをスワップ先にできる状態にする方法
(4) ディスク障害が発生したときの対処方法

(1) HiRDBの稼働中に障害が発生した場合

HiRDBの稼働中に現用ファイルに障害が発生した場合の対処方法を次の表に示します。

表19-12 現用ファイルに障害が発生した場合の対処方法(HiRDBの稼働中)

障害発生時の条件 HiRDBの処理 HiRDB管理者の処置
書き込み時 スワップ先にできる状態のファイルがある場合 システムログファイルをスワップします。
障害が発生したシステムログファイルの状態を予約とし,スワップ先にできる状態のファイルの一つを現用にして,処理を続行します。

  • 業務履歴が必要な場合は,予約となったファイルをpdlogunldコマンドでアンロードしてください。
  • 障害が発生したファイルを(3)に示す方法でスワップ先にできる状態にしてください。
スワップ先にできる状態のファイルがない場合 障害が発生したファイルがあるユニットを異常終了します。 19.17 システムログファイルの容量不足によってHiRDB(ユニット)が異常終了したときの対処方法」を参照してください。
  • スワップ先にできる状態のファイルを作成してください。その後,HiRDBを再開始してください。
  • 障害が発生したファイルを(3)に示す方法でスワップ先にできる状態にしてください。
読み込み時 システムログファイルを二重化している場合 正常な系のファイルに切り替えて,処理を続行します。 障害が発生した系のファイルを(3)に示す方法でスワップ先にできる状態にしてください。
システムログファイルを二重化していない場合 障害が発生したシステムログファイルの状態を予約とし,処理を中止します。
  • 障害が発生したシステムログファイルをアンロードしていなければ,pdlogunldコマンドでアンロードしてください。
  • バックアップ及び作成したアンロードログファイルを入力情報としてデータベース回復ユティリティでデータベースを回復してください。データベースの回復方法については,「20.データベースの回復方法」を参照してください。
  • 障害が発生したシステムログファイルを(3)に示す方法でスワップ先にできる状態にしてください。

注※
アンロード状態のチェックを解除する運用をしている場合(pd_log_unload_check=Nを指定している場合)は,必要ない操作です。

(2) HiRDBの再開始処理中に障害が発生した場合

HiRDBの再開始処理中に現用ファイルに障害が発生した場合の対処方法を次の表に示します。

表19-13 現用ファイルに障害が発生した場合の対処方法(HiRDBの再開始処理中)

障害発生時の条件 HiRDBの処理 HiRDB管理者の処置
システムログファイルを二重化している場合 正常な系のファイルに切り替えて,再開始処理を続行します。 HiRDBの再開始後,障害が発生した系のファイルを(3)に示す方法でスワップ先にできる状態にしてください。
システムログファイルを二重化していない場合 障害が発生したシステムログファイルの状態を予約とし,障害が発生したシステムログファイルのユニットの再開始処理を終了します。
  • 障害が発生したシステムログファイルをアンロードしていなければ,pdlogunldコマンドでアンロードします。その後,ユニットを強制開始します。
  • バックアップと作成したアンロードログファイルを入力情報としてデータベース回復ユティリティでデータベースを回復してください。データベースの回復方法については,「20.データベースの回復方法」を参照してください。
  • 障害が発生したシステムログファイルを(3)に示す方法でスワップ先にできる状態にしてください。

(3) 障害が発生したファイルをスワップ先にできる状態にする方法

〈手順〉
  1. pdloglsコマンドで,障害発生のため予約となったシステムログファイルを確認します。
    pdlogls -d sys -s b001
  2. pdlogrmコマンドで予約ファイルを削除します。
    pdlogrm -d sys -s b001 -f /sysfile/syslog1a
    pdlogrm -d sys -s b001 -f /sysfile/syslog1b
  3. pdloginitコマンドで,2で削除したシステムログファイルを再作成します。
    pdloginit -d sys -s b001 -f /sysfile/syslog1a -n 5000
    pdloginit -d sys -s b001 -f /sysfile/syslog1b -n 5000
  4. pdlogopenコマンドで,3で再作成したシステムログファイルをスワップ先にできる状態にしてください。
    pdlogopen -d sys -s b001 -g syslog01
 
コマンドの実行後,実行結果が正しいかどうか確認することをお勧めします。コマンドの実行結果の確認方法については,マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

(4) ディスク障害が発生したときの対処方法

ディスク障害が発生したときの対処方法を例題形式で説明します。

例題
ディスク障害が発生して現用ファイルの片系が障害状態になりました。スワップ先にできる状態のファイルがあるため,HiRDBはシステムログファイルのスワップ処理を実施して稼働中のままです。

対処方法
このままオンラインを続行した場合,システムログファイルの全体容量に余裕がないと,システムログファイルの容量不足が起こり,ユニットが異常終了する可能性があります。したがって,早急にディスク交換をして〈手順1〉に示す方法で対処してください。
なお,ディスク交換がすぐにできない場合は,〈手順2〉に示す方法で対処してください。また,〈手順1〉又は〈手順2〉の方法をすぐにとれない場合は,〈手順3〉に示す方法で対処してください。
〈手順1〉ディスク交換がすぐにできる場合
  1. pdstopコマンドでHiRDBを正常終了します。
  2. ディスクを交換し,pdfmkfsコマンドでHiRDBファイルシステム領域を作成します。
  3. pdloginitコマンドでシステムログファイルを作成します。
  4. pdstartコマンドでHiRDBを正常開始します。
〈手順2〉ディスク交換がすぐにできない場合
  1. pdstopコマンドでHiRDBを正常終了します。
  2. 空きのあるHiRDBファイルシステム領域に,pdloginitコマンドでシステムログファイルを作成します。
  3. サーバ定義の次に示すオペランドを修正します。追加したシステムログファイルに対応するオペランドを追加します。
    ・pdlogadfg
    ・pdlogadpf
  4. pdstartコマンドでHiRDBを正常開始します。
〈手順3〉手順1又は2の方法をすぐにとれない場合
  1. pdstopコマンドでHiRDBを正常終了します。
  2. 障害が発生したシステムログファイルに対応しているサーバ定義で,pd_log_singleoperation=Y(システムログファイルの片系運転をすること)を指定します。
  3. pdstartコマンドでHiRDBを正常開始します。
    注意
    〈手順3〉の方法をとった場合,システムログファイルの片系運転中にシステムログファイルに障害が発生すると,アンロードログ(システムログ)を使用したデータベースの回復ができなくなります。したがって,〈手順3〉の方法は一時的なものとし,早急に〈手順1〉又は〈手順2〉の方法をとるようにしてください。