9.3.1 システムログファイルの設計
システムログファイルの設計方針について説明します。
- 〈この項の構成〉
(1) 設計方針
-
システムログファイルはシステムマネジャを除いた各サーバに必要です。
-
サーバ内の全システムログファイルのレコード長及びレコード数を同じにしてください。
-
各サーバに作成できるシステムログファイルは,2〜200グループです(ただし,6グループ以上作成することを推奨します)。
-
一つのサーバに対して,次の式を満たすようにシステムログファイルを作成します。
100(単位:ギガバイト)×(200−サーバに割り当てるシステムログファイルグループ数)≧サーバに割り当てるシステムログファイルの総容量×3
これは,システムログファイルの容量不足によって異常終了したHiRDBを再開始する場合に必要になります。システムログファイルが容量不足になった状況や運用によっては,サーバに割り当てられている3倍の容量のシステムログファイルを作成し,サーバに追加して対処する必要があるためです。
-
アンロードする回数を少なくしたい場合は,システムログファイルの1ファイル容量を大きくします。
-
HiRDB運用ディレクトリがあるディスクに大量に入出力が発生するファイル(システムログのアンロードログファイルなど)を作成しないでください。
-
一つのシステムログファイルの容量は,次に示す条件を満たす必要があります。
一つのシステムログファイルの容量(バイト)≧↑(a+368)÷c↑×c×b×d
a:pd_log_max_data_sizeオペランドの値
b:pd_log_sdintervalオペランドの値
c:pd_log_rec_lengオペランドの値
d:pd_spd_assurance_countオペランドの値
-
全システムログファイルの容量(二重化している場合は片系の容量だけを対象とする)は,次に示す二つの条件を満たす必要があります。
- 条件1
-
「システムログファイルの総容量の求め方」で見積もった容量以上の値にしてください。
- 条件2
-
長大トランザクションが終了するまでは,長大トランザクション開始以降のシステムログファイルの上書きができません。また,シンクポイントダンプファイルの有効保証世代とカレント世代のシステムログファイルは上書きできません。そのため,これらの分のシステムログファイル容量を確保してください。次の計算式で求めます。
全システムログファイルの総容量(バイト)≧3×a×(b+1)
- a:
-
データベースを更新するトランザクションのうち,実行時間が最大のトランザクション実行中に該当するサーバで出力されることのあるシステムログ量
システムログ量の見積もり式については,「システムログファイルの容量の見積もり」を参照してください。
- b:pd_spd_assurance_countオペランドの値
-
シンクポイントダンプファイルの有効保証世代数です。
(a) システムログファイルの世代数と運用への影響
システムログファイルの総容量が同じ場合,システムログファイルの世代数によって,1世代当たりの容量が変化します。システムログファイルの世代数と運用への影響を次の表に示します。システムログファイルの総容量は同じとします。
比較項目 |
システムログファイルの構成 |
|
---|---|---|
世代数を少なくした場合 |
世代数を多くした場合 |
|
システムログファイル1世代当たりの容量 |
大きくなります。 |
小さくなります。 |
スワップ間隔 |
システムログファイル1世代当たりの容量が大きくなるため,スワップ間隔は長くなります。 |
システムログファイル1世代当たりの容量が小さくなるため,スワップ間隔は短くなります。 |
アンロード回数 |
スワップ間隔が長くなるため,アンロード回数は少なくなります。 |
スワップ間隔が短くなるため,アンロード回数は多くなります。 |
ディスク障害などでシステムログファイルの数世代が使用できなくなった場合のシステムログ容量への影響 |
|
|
通常の運用では,システムログファイルの世代数を少なくした場合の方がスワップ間隔及びアンロード回数の点で利点があります。ただし,障害発生時には,世代数を多くした場合の方が障害の影響が小さくなります。
(2) 信頼性向上のための方針
(a) システムログファイルの二重化
システムログファイルを二重化すると,HiRDBは両方の系に同じシステムログを取得します。取得したシステムログを読み込むとき,片方のファイルに異常が発生しても,もう一方のファイルからシステムログを読み込めるため,システムの信頼性を向上できます。なお,二重化する場合,ディスクをミラー化して二重化するより,HiRDB管理下で二重化することをお勧めします。システムログファイルを二重化する場合は,それぞれの系のファイルを別々のハードディスクに作成してください。
システムログファイルを二重化する場合は,サーバ定義で次に示すオペランドを指定してください。
(b) システムログファイルの片系運転
システムログファイルの片系運転は,システムログファイルを二重化する場合に適用されます。
システムログファイルに障害が発生して,両系とも使用できるシステムログファイルがない場合でも,HiRDBのユニットを異常終了しないで正常な系だけで処理を続行できます。これをシステムログファイルの片系運転といいます。システムログファイルの片系運転をする場合は,サーバ定義でpd_log_singleoperation = Yを指定してください。
システムログファイルの片系運転に対し,両方のシステムログファイルで処理を続行すること(通常の処理形態)をシステムログファイルの両系運転といいます。
(3) 可用性向上のための方針
(a) システムログファイルの空き容量監視機能
システムログファイルのスワップ時に,スワップ先にできる状態のシステムログファイルがないとHiRDB(ユニット)は異常終了します。これを予防するため,HiRDBにはシステムログファイルの空き容量を監視する機能(システムログファイルの空き容量監視機能)があります。この機能は,システムログファイルの空き率が警告値未満になったときに作動します。次に示す二つのレベルのどちらかを選択できます。
- レベル1:
-
システムログファイルの空き率が警告値未満になった場合,警告メッセージKFPS01162-Wを出力します。
- レベル2:
-
システムログファイルの空き率が警告値未満になった場合,新規トランザクションのスケジューリングを抑止して,サーバ内の全トランザクションを強制終了します。このとき,KFPS01160-Eメッセージを出力します。これによって,システムログの出力量を抑えます。
レベル2を選択した場合,システムログファイルの空き容量が不足したときにサーバ内の全トランザクションが強制終了されます。このため,システムログファイルの設計をより正確に行う必要があります。
システムログファイルの空き容量監視機能については,マニュアル「HiRDB Version 9 システム運用ガイド」を参照してください。
(b) システムログファイルの自動拡張機能
システムログファイルの容量不足が発生すると,HiRDBシステム(又はユニット)が異常終了します。これを回避するため,自動的にシステムログファイルの容量を拡張する機能(システムログファイルの自動拡張機能)を提供しています。この機能を適用することで,システムログファイルの容量不足によるHiRDBシステム(又はユニット)の異常終了の頻度を低減できます。
システムログファイルの自動拡張機能については,マニュアル「HiRDB Version 9 システム運用ガイド」を参照してください。
(c) シンクポイントダンプ有効化のスキップ回数監視機能
UAPが無限ループしてデータベースを更新し続けるとシンクポイントが有効化できないため,上書きできない状態のシステムログファイルが増えてしまいます。上書きできない状態のシステムログファイルが増えて全システムログファイルが上書きできない状態になると,HiRDBが異常終了します。
また,上書きできない状態のシステムログファイルが,全システムログファイルの半分以上になったときにHiRDBが異常終了又は強制終了すると,HiRDBを再開始するときのロールバック処理でシステムログファイルが不足します。この場合,システムログファイルを新規追加しないと,HiRDBを再開始できません。そして,この再開始処理に要する時間も長くなります。
このようなことを防ぐために,HiRDBではシンクポイントダンプ有効化のスキップ回数監視機能を設けています。
シンクポイントダンプ有効化のスキップ回数監視機能については,マニュアル「HiRDB Version 9 システム運用ガイド」を参照してください。
(4) システムログファイルのレコード長(既にHiRDBを稼働している場合)
レコード長が1024以外の場合,システムログの格納効率を良くするために1024に変更することをお勧めします。
システムログファイルのレコード長の変更方法については,マニュアル「HiRDB Version 9 システム運用ガイド」を参照してください。
(5) システムログファイルの定義
作成したシステムログファイルをどのファイルグループに対応させるかをサーバ定義のpdlogadfg及びpdlogadpfオペランドで定義します。