トランザクションログファイルのデータ部のサイズは、以下の見積り式に基づいて決定してください。
なお、ここで算出される値は、理想的な状態でデータが格納された場合の理論値です。実際には削除などの処理により理想的な状態で格納されません。この計算値を最低限必要な値と考えて見積もってください。
また、作成後は、お客様システムのピーク時におけるトランザクション数および最大ログ量のモデルで、トランザクションログファイルの使用率が80%を超過しないよう十分検証してください。
見積り式
トランザクションログファイルのデータ部のサイズ = H × T × L × G × S
H:最大トランザクション時間(単位:秒)
T:単位時間(単位:秒)あたりに発生するトランザクション数
L:トランザクションごとに発生するログ量(単位:バイト)
G:バックグラウンド処理係数(1~5)
バックグラウンド処理とは、トランザクションログファイルから差分ログファイルへ差分データを転送する処理です。
この処理は、データベースを更新するトランザクションとは非同期に動作します。
バックグラウンド処理係数とは、この転送処理とトランザクションログファイルへの差分データの出力との処理の割合を考慮する値です。
特に以下の点に影響を受けます。
利用者プログラムの多重度が高いシステムや大量にデータを更新するようなシステム
差分ログファイルのディスク配置およびディスク性能
lxextdbコマンドの実行契機
以下に参考とする値を説明します。
日中におけるお客様業務(複写元データベースを更新する業務)終了後に、レプリケーション業務を実行するようなシステムでは、1を指定します。
それ以外のシステムでは、1.1~1.5を推奨します。
ただし、高TPS、大量データ更新といったシステムでは、お客様業務の運用中にレプリケーション業務を実行するか否かに関係なく、1.5~5の間の値を使用します。このとき、トランザクションログファイルの最大サイズを超過しないようにしてください。
トランザクションログファイルの最大サイズを超過する場合は、利用者プログラムの実行多重度、1トランザクションあたりの更新データ量を調整してください。
S:安全係数(1.5~6)
安全係数は、トランザクションログファイルへの差分データの格納効率を考慮する値です。1.5を目安とし、トランザクションログファイルの使用率が80%を超過しないことを検証してください。
最大トランザクション時間(H) = お客様業務においてもっとも処理時間の長い更新系トランザクションの時間
トランザクションごとに発生する最大ログ量(L) = (B × N × 1トランザクションあたりのSQL件数 + 1 )× 512
N:UPDATEの場合 2、INSERTまたはDELETEの場合 1
B:ブロック数
ブロック数(B) = (レコード長 + R)÷ 512 + 1
R:固有情報
INSERT文の場合の固有情報(R) = 38 + 4 × 可変長属性列数 + n
DELETE文の場合の固有情報(R) = INSERT文の場合と同じ計算式
UPDATE文の場合の固有情報(R) = 34 + 4 × 可変長属性列数 + (4×平均更新列数)+ n
n:レプリケーション対象表のNOT NULL制約の付いていない列の数
注意
上記見積り式の結果が、10Mバイトに満たない場合は、10Mバイト以上のサイズとし、使用率が80%を超えないよう十分検証をしてください。
レコード長については、“Symfoware Server セットアップガイド”を参照してください。
トランザクションログファイルのインデックス部のサイズは、4096バイト固定です。
トランザクションログファイルの管理部のサイズは、1536バイト固定です。
1Gバイトを超過する差分ログファイルを使用する場合、お客様システムのメモリサイズによっては、差分ログファイルの書込み保証が遅延する場合があります。トランザクションログファイルの使用率が80%を超えないよう、トランザクションログファイルのサイズを拡張することを推奨します。