テンポラリログファイルの見積もり式について説明します。
最初に同時実行アプリケーション数や更新BIログ量などにあわせて以下の項目を見積もります。
次にBIログ域サイズやデータベースリカバリ処理時間(ダウンリカバリ時間)の目標値にあわせて以下の項目を見積もります。
■トランザクションエントリ数
トランザクションエントリ数の見積もり式を以下に示します。
トランザクションエントリ数 = (最大コネクション数 + 1) × リポジトリ数 × 4 |
トランザクションエントリ数によって、テンポラリログインデックス域のサイズが決まります。以下の式によってログインデックス部のサイズを見積もってください。
テンポラリログインデックス域のサイズ = ブロック長 + 2 × BLOCK(248 × T + 304) (バイト) T : トランザクションエントリ数 ブロック長 : テンポラリログ域のブロック長です。 テンポラリログファイル作成時にioオプションで 指定する値です。 特に指定しない場合は、512バイトです。 BLOCK( ) : カッコ内の式を、ブロックバウンダリで切り上げます。 |
テンポラリログインデックス域のサイズ = ブロック長 + 2 × BLOCK(240 × T + 304) (バイト) T : トランザクションエントリ数 ブロック長 : テンポラリログ域のブロック長です。 テンポラリログファイル作成時にioオプションで 指定する値です。 特に指定しない場合は、512バイトです。 BLOCK( ) : カッコ内の式を、ブロックバウンダリで切り上げます。 |
Symfoware Server Enterprise Extended Editionでブロック長が512(バイト)、トランザクションエントリ数が256の場合
テンポラリログインデックス域のサイズ = 512 + 2 × BLOCK(248 × 256 + 304) = 512 + 2 × 64,000 = 128,512 (バイト) |
■トランザクションの更新データ量と多重度
トランザクションの更新データ量は、“D.1.4 ログ量の見積もり式”を参照し、見積もってください。
トランザクションの多重度は、トランザクションエントリ数をもとに、見積もってください。
なお、テンポラリログファイルは、16Gバイト未満で作成してください。
トランザクションが収集するログにトランザクション間でばらつきが大きい場合は、本見積もり式の誤差が大きくなるため、実際に動作させて、必要ならテンポラリログファイルを変更してください。
運用を続けているうちにテンポラリログファイルの容量を変更しなければならなくなった場合は、rdblogコマンドで変更することができます。
■BIログ域サイズ
BIログ域は、トランザクション多重度およびそのトランザクションが出力するBIログ量を観点にして見積もります。トランザクションが収集するログにトランザクション間でばらつきが大きい場合は、本見積もり式の誤差が大きくなるため、実際に動作させて、必要ならテンポラリログファイルを変更してください。
BIログ域のサイズ = Lb × トランザクションエントリ数 Lb : トランザクションの更新ログ量の最大値(バイト数) |
■ダウンリカバリ時間
データベース運用中にシステムダウンが発生したときに、Symfoware/RDBの再起動または切替えの延長で行うデータベースのリカバリ処理の時間です。
システムダウン発生後の再起動時間の目標値(お客さまの要件など)から、ダウンリカバリ時間を検討する必要があります。
■AIログ域サイズ
AIログ域のサイズは、原則としてリカバリログ量を基準に決定します。AIログ域全体サイズは、リカバリログ量のおよそ2倍程度を目安にします。
ただし、リカバリ時間を抑えたい場合でも、AIの全体サイズが少なすぎると、トランザクション実行中に枯渇が発生する危険がありますので全体サイズは、BIサイズ以下とならない容量が必要となります。
X = リカバリログ量 × 2 Y = BIログ域サイズ AIログ域のサイズ = MAX(X,Y) ・・ X、Yどちらかの多い方を選択してください。 |
Advanced Backup Controllerを使用する場合は、バックアップ取得期間のログ量が増加します。以下の見積もり式により算出した値を、AIログ域のサイズに加算してください。
算出結果が負となった場合は、本ログ量について考慮する必要はありません。
AIログ増分 = O × P × n - R O: 1秒あたりの1データベーススペースへの書き込み回数 (注1) P: ページ長(単位:バイト) n: データベーススペース数 R: リカバリログ量(単位:バイト) |
注1) Oについては、sarコマンドによる実測データから統計的に算出することを推奨します。見積もり段階では以下を目安にしてください。
算出例を以下に示します。
O: 1秒あたりの1データベーススペースへの書き込み回数 = 300 × 1 = 300 K: トランザクションあたりの更新ページ枚数 = 1 T: 1秒あたりの平均トランザクション量 = 300 P: ページ長 = 32,768(32Kバイト) n: データベーススペース数 = 3 R: リカバリログ量 = 10,485,760(10Mバイト) AIログ増分 = 300 × 32,768 × 3 - 10,485,760 = 19,005,400(約19Mバイト) |
■リカバリログ量
リカバリログ量は、定常性能およびダウンリカバリ時間に影響を与えます。RDBシステムは、リカバリログ量を一定に保つように、一定間隔で、データベースバッファからディスクへの書込みを行います。
リカバリログ量が少ない場合は、データベースバッファの書込み頻度が増えるため、定常性能に悪い影響を与える可能性があります。
リカバリログ量が多い場合は、ダウンリカバリ時間が長くなります。
したがって定常性能を重視する場合は、ダウンリカバリ時間が運用に問題ない程度までリカバリログ量を多くとるようにしてください。
リカバリログ量の指定を省略した場合、デフォルト値は、AIログ量が1.25Mバイト以上では512Kバイトが設定され、1.25Mバイト以下ではAIログ域サイズの40%が設定されます。その場合のダウンリカバリの時間は、およそ1~2秒です。
リカバリログ量10Mバイトごとに5秒から15秒程度のダウンリカバリ時間がかかるとみて初期設定します。ただし、リカバリログ量と、ダウンリカバリ時間の関係は、ディスク性能、バッファのサイズにより大きく影響を受けます。
したがって、より精度の高いリカバリログ量とするためには、実際の運用に沿った環境下でダウンリカバリ時間を実測し、rdblogコマンドの-Uオプション、-tオプションおよび-cオプションで、リカバリログ量を再設定してください。