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

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

3.2.2 HiRDB/パラレルサーバの場合

データベースに障害が発生した場合の回復方法
システムログをアンロードする運用中にデータベースに障害が発生した場合,バックアップ及びアンロードログファイル(バックアップ取得以降のシステムログを格納したアンロードログファイル)を入力情報にしてデータベースを回復します。データベースの回復方法については,「20.データベースの回復方法」を参照してください。

フロントエンドサーバのシステムログについて
フロントエンドサーバのシステムログは,データベースの回復作業に必要ないため,アンロードする必要はありません。したがって,フロントエンドサーバ定義にpd_log_unload_check=Nを指定して,フロントエンドサーバのシステムログファイルのアンロード状態のチェックを解除してください。そうすると,フロントエンドサーバのシステムログファイルをアンロードしなくても良くなります。pd_log_unload_check=Nを指定しない場合は,フロントエンドサーバのアンロード待ち状態のファイルに対して,次に示すどちらかの操作が必要になります。
  • pdlogunldコマンドで,システムログをアンロードしてファイルの状態をアンロード済み状態にします。
  • pdlogchgコマンドで,ファイルの状態を強制的にアンロード済み状態にします。

運用例
HiRDB/パラレルサーバの場合のシステムログをアンロードする運用の手順を次の図に示します。

図3-2 システムログをアンロードする運用の手順(HiRDB/パラレルサーバの場合)

[図データ]
<この項の構成>
(1) システムログファイルがスワップしたらファイルの状態を確認します
(2) システムログをアンロードします
(3) システムログファイルの状態を確認します
(4) システムログファイルをスワップします
(5) バックアップを取得します
(6) システムログファイルの状態を確認します
(7) システムログをアンロードします

(1) システムログファイルがスワップしたらファイルの状態を確認します

システムログファイルにシステムログが一杯に書き込まれると,システムログファイルがスワップします。システムログファイルがスワップすると,KFPS01221-I及びKFPS01222-Iメッセージがメッセージログファイル及びsyslogfileに出力されます。このとき,pdloglsコマンドでシステムログファイルの状態を確認してください。

 
pdlogls -d sys -s bes1
 

[図データ]

〔説明〕
log01のファイルにシステムログが一杯に書き込まれたため,システムログの出力先がlog01からlog02に変更されます(システムログファイルがスワップします)。このため,log01は次に示す状態となります。
  • 上書きできない状態
  • アンロード待ち状態

(2) システムログをアンロードします

アンロード待ち状態のファイル(log01)をpdlogunldコマンドでアンロードしてください。

 
pdlogunld -d sys -s bes1 -g log01 -o /unld/unldlog01
 

(3) システムログファイルの状態を確認します

pdloglsコマンドで,システムログファイル(log01)の状態を確認してください。

 
pdlogls -d sys -s bes1
 

[図データ]

〔説明〕
  • システムログをアンロードしたため,ファイルの状態がアンロード待ち状態からアンロード済み状態に変わります。
  • システムログファイルがスワップすると,シンクポイントダンプの有効化処理が実施されます。シンクポイントダンプが有効化されると,ファイルの状態が上書きできない状態から上書きできる状態に変わります。
  • したがって,ファイルの状態がスワップ先にできない状態からスワップ先にできる状態に変わります。

重要
スワップ先にできる状態のファイルがない状態でシステムログファイルがスワップすると,ユニットが異常終了します。したがって,HiRDB管理者はスワップ先にできる状態のファイルが常にあるように運用してください。なお,スワップ先にできる状態のファイルがなくなると,HiRDBはKFPS01224-Iメッセージをメッセージログファイル及びsyslogfileに出力します。

(4) システムログファイルをスワップします

バックアップを取得する前に,pdlogswapコマンドでシステムログファイルをスワップさせてください。この例ではバックエンドサーバ(bes1)下のRDエリアのバックアップを取得するので,bes1のシステムログファイルをスワップさせます。

データベース回復時に必要なシステムログを物理的に分けるために,システムログファイルをスワップさせます。データベース回復時に必要なシステムログを格納しているシステムログファイルは,これ以降現用になったシステムログファイルです。

 
pdlogswap -d sys -s bes1 -w
 

(5) バックアップを取得します

pdcopyコマンド(データベース複写ユティリティ)で,サーバ単位のバックアップを取得します。バックアップの取得については,「6. バックアップの取得方法」を参照してください。

 
pdcopy -m /rdarea/mast/mast01 -M r -s bes1 -b /pdcopy/backup01
 

〔説明〕
-m:マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。
-M:バックアップ取得モードには,r又はsを指定します。
-s:バックエンドサーバ(bes1)下の全RDエリアのバックアップを取得する指定をします。
-b:バックアップファイル名を指定します。

重要
ここで取得したバックアップを使用してRDエリアを回復する場合,データベース回復ユティリティの入力情報となるアンロードログファイルは,現在の現用ファイル以降のシステムログを格納したアンロードログファイルとなります。

(6) システムログファイルの状態を確認します

pdloglsコマンドで,バックエンドサーバ(bes1)のシステムログファイルの状態を確認してください。

 
pdlogls -d sys -s bes1
 

[図データ]

(7) システムログをアンロードします

アンロード待ち状態のファイル(log02)をpdlogunldコマンドでアンロードしてください。

 
pdlogunld -d sys -s bes1 -g log02 -o /unld/unldlog02