RERUNログ抽出環境の以下の資源について、見積り方法を説明します。
RERUNログ引継ぎファイルおよびRERUNログ抽出ファイルの容量見積りに関する考慮について
RERUNログ引継ぎファイルおよびRERUNログ抽出時に作成されるRERUNログ抽出ファイルの容量見積りの前提となる、各ファイルの関係について以下の図に説明します。
RERUNログ引継ぎファイルの容量見積りについて説明します。
RERUNログ抽出処理は複写先RLPで行われ、抽出対象のRLCファイル内で確定したトランザクションのRERUNログのみをRERUNログ抽出ファイルに出力します。しかし、正系ノードでのRLC交替のタイミングやトランザクション内で更新したログ量によっては、抽出対象のRLCファイル内で確定していないトランザクションが存在する場合があります。
このような確定していないトランザクションのRERUNログを別ファイルに格納しておくことで、次のRLCファイルからのRERUNログ抽出処理に備えます。
この別ファイルのことを、RERUNログ引継ぎファイルといいます。
注意
以下の場合は、1つのトランザクションのRERUNログが複数のRLCファイルに書き込まれる可能性が高いため、RERUNログ引継ぎファイルの容量見積りに特に注意が必要です。
正系ノードのトランザクション内で大量のデータ更新を行うようなバッチ業務を実行
正系ノードでトランザクションを長時間確定しない業務を実行
RLCファイル1個の容量に対して、1つのトランザクションのRERUNログ量の占める割合が大きい場合
RERUNログ引継ぎファイルの見積り式を以下に示します。
RERUNログ引継ぎファイルのサイズ= (8 × 1024 + (BLOCK(Lr) × 正系ノードでの同時実行トランザクション数 × 2(世代) )) × 1.5(安全率) Lr : トランザクションのRERUNログ量の最大値(バイト数) BLOCK : カッコ内の式を、64キロバイトバウンダリで切り上げます
正系ノードでの同時実行トランザクション数は、テンポラリログファイルのトランザクションエントリ数の利用を推奨します。
RERUNログ引継ぎファイルの場合、トランザクション単位のRERUNログ量は、以下の式で見積ります。
トランザクションのRERUNログ量 = AIログ量 × トランザクション内の更新件数
Symfoware/RDBのAIログ量です。
参照
Symfoware/RDBのAIログ量については“A.3.5.1 Symfoware/RDBのAIログ量の見積り”を参照してください。
注意
RERUNログ引継ぎファイルは、正系ノードの同時実行トランザクション数と、各トランザクションが出力するRERUNログ量の最大値を観点にして見積ります。
各トランザクションのRERUNログ量においてトランザクション間でばらつきが大きい場合は、本見積り式の誤差が大きくなる場合があります。そのため、運用前に実際に動作させて、必要に応じてRERUNログ引継ぎファイルの容量を大きくしてください。
ポイント
DBミラーリングシステムでは、書き出し中の異常に備えて、RERUNログ引継ぎファイルを2世代保持します。このため、上記の見積り式は2世代分の容量を必要としています。
RERUNログ引継ぎファイルの使用量は、副系ノードにおいて、rdbbccntfコマンドを実行することにより確認できます。
rdbbccntfコマンドでRERUNログ引継ぎファイルの使用量を確認する場合は、副系ノードのDBミラーリングサービスの状態がリカバリ停止、保守停止、または通常停止中に行います。
なお、実際に動作させて使用量を見積る場合には、rdbbccntfコマンドで表示される、RERUNログ引継ぎファイル内の未解決トランザクションのRERUNログを格納する領域の容量(項目名:LogareaSize)に対する、RERUNログ引継ぎファイル内に保持している未解決トランザクションのRERUNログ容量(項目名:UsedSize)の割合を評価して充分な容量を見積もってください。
RERUNログ引継ぎファイルを配置するディスク容量(RLP動作環境ファイルのCONT_FILE_PATHパラメタに指定するディレクトリパスの容量)は、RERUNログ引継ぎファイルの見積り値から必要なディレクトリ容量を算出してください。
RERUNログ抽出処理で作成するRERUNログ抽出ファイルとその格納するディレクトリ(ファイルシステム)の見積りについて説明します。
RERUNログ抽出処理では、抽出対象のRLCファイル内で確定したトランザクションのRERUNログと、RERUNログ引継ぎファイルに格納されている該当トランザクションのRERUNログを合わせて抽出します。
注意
RERUNログ抽出では、トランザクションが確定したRLCファイルを抽出した契機で、そのトランザクション内のすべてのRERUNログを抽出します。そのため、以下の場合には、1つのRLC世代ごとに作成されるRERUNログ抽出ファイルの容量見積りに特に注意が必要です。
正系ノードのトランザクション内で大量のデータ更新を行うようなバッチ業務を実行
正系ノードでトランザクションを長時間確定しない業務を実行
RLCファイルの容量に対して正系ノードのトランザクション内で更新するログ量の占める割合が大きい場合
RERUNログ抽出ファイルのサイズ = 2 × 1024 + BLOCK((RLCファイルサイズ + 正系ノードでの同時実行トランザクション数 × Lr ) × 1.5(安全率)) Lr : トランザクションのRERUNログ量の平均値(バイト数) BLOCK : カッコ内の式を、256キロバイトバウンダリで切り上げます
RLCファイル1個の容量です。
参照
RLCファイルの容量見積りについての詳細は“A.3.2 RLCファイルの見積り”を参照してください。
正系ノードでの同時実行トランザクション数は、テンポラリログファイルのトランザクションエントリ数の利用を推奨します。
RERUNログ抽出ファイルの場合、トランザクション単位のRERUNログ量を以下の式で見積って、平均のログ量を算出します。
トランザクションのRERUNログ量 = (AIログ量 + 24バイト) × トランザクション内の更新件数
Symfoware/RDBのAIログ量です。
参照
データベース二重化がAIログに付加するログ量の見積りは“A.3.5.1 Symfoware/RDBのAIログ量の見積り”を参照してください。
注意
RERUNログ抽出ファイルの見積り式は、正系ノードで実行されるトランザクションのRERUNログ量の平均値が観点に含まれているため、トランザクション間でトランザクションのRERUNログ量のばらつきが大きい場合は、本見積り式の誤差が大きくなる場合があります。そのため、運用前に実際に動作させて、必要であれば安全率を大きくする、RERUNログ抽出ファイルを格納するディレクトリのサイズを大きく確保するなどの対処を実施してください。
RERUNログ抽出ファイルは、RERUNログ抽出処理でRERUNログの抽出を行う際に作成され、RERUNログ反映処理でのRERUNログ反映が完了した際に削除されます。
また、RERUNログ抽出ファイルは、前のRERUNログ抽出ファイルが削除された後に作成されるため、複数同時に存在することはありません。
RERUNログ抽出ファイルの見積り値から、必要なディレクトリ容量を算出してください。
RERUNログ抽出作業域の見積り式について説明します。
RERUNログの抽出では、RERUNログをトランザクション単位に整列します。このとき使用されるのがRERUNログ抽出作業域です。
RERUNログ抽出作業域は、作業域メモリと作業域ファイルで構成されています。
作業域メモリと作業域ファイルの関係について、以下の図に示します。
RERUNログ抽出作業域全体の見積り式を以下に示します。
RERUNログ抽出作業域のサイズ = (BLOCK(Lr) × 正系ノードでの同時実行トランザクション数 × 2) × 1.5(安全率) Lr : トランザクションのRERUNログ量の最大値(バイト数) BLOCK : カッコ内の式を、64キロバイトバウンダリで切り上げます
正系ノードでの同時実行トランザクション数は、テンポラリログファイルのトランザクションエントリ数の利用を推奨します。
トランザクション単位のRERUNログ量は、以下の式で見積ります。
トランザクションのRERUNログ量 = AIログ量 × トランザクション内の更新件数
Symfoware/RDBのAIログ量です。
参照
AIログ量については“A.3.5.1 Symfoware/RDBのAIログ量の見積り”を参照してください。
注意
RERUNログ抽出作業域は、正系ノードの同時実行トランザクション数と、各トランザクションが出力するRERUNログ量の最大値を観点にして見積ります。各トランザクションの収集するRERUNログ量がトランザクション間でばらつきが大きい場合は、本見積り式の誤差が大きくなるため、実際に動作させて必要に応じてRERUNログ抽出作業域を大きくしてください。
ポイント
RERUNログ抽出作業域は、作業域ファイルの拡張が発生しないように設計を行います。
このため、上の式で求めたRERUNログ抽出作業域全体の見積り値は、できるだけすべて作業域メモリに割り当てます。また、作業域ファイルの1回の割り当て量は、目安として拡張回数が数回程度となるように指定しておき、その後チューニングを行うことを推奨します。ただし、拡張回数が数回程度で収まらない場合は、最大値の100メガバイトを指定してください。
作業域メモリの割り当て量は、RLP動作環境ファイルのEXT_WORK_MEMパラメタで指定します。また、作業域ファイルの1回の割り当て量は、RLP動作環境ファイルのEXT_WORK_SIZEパラメタに指定し、割り当て先ディレクトリはRLP動作環境ファイルのEXT_WORK_PATHパラメタに指定します。
RERUNログ抽出作業域の見積り値に対するRLP動作環境ファイルのEXT_WORK_MEM、EXT_WORK_SIZEパラメタの設定例を示します。
RERUNログ抽出作業域の見積り値 : 30メガバイト
割り当て可能なメモリ量 : 100メガバイト
RERUNログ抽出作業域の見積り値は、すべて作業域メモリに割り当てます。
EXT_WORK_MEM=30
RERUNログ抽出作業域の見積り値がすべて作業域メモリで足りているため、作業域ファイルの1回の割り当て量はデフォルト値(10メガバイト)を推奨します。
EXT_WORK_SIZE=10
RERUNログ抽出作業域の見積り値 : 650メガバイト
割り当て可能なメモリ量 : 500メガバイト
RERUNログ抽出作業域の見積り値は、できるだけ作業域メモリに割り当てます。
EXT_WORK_MEM=500
RERUNログ抽出作業域の見積り値に対して作業域メモリが不足しているため、不足分を作業域ファイルに割り当てます。作業域ファイルの1回の割り当て量は、拡張回数が数回程度(以下の例では3回)になるように設定します。
EXT_WORK_SIZE=50
参照
RERUNログ抽出作業域のチューニングについては“12.1 RERUNログ抽出作業域のチューニング”を参照してください。
RLP動作環境ファイルのEXT_WORK_MEMパラメタおよびEXT_WORK_SIZEパラメタについては“5.2.8.4 RLP動作環境ファイルの編集”を参照してください。