Question & Answer
Question
トランザクション・ログの使用量を見積もる方法はありますか。
Answer
トランザクション・ログの使用量を計算式等で見積もることはできません。
しかし、各アプリケーションが現行トランザクションで確保しているログ・スペースの量は、トランザクションが未コミットの状態で db2pd コマンドを使って実測できます。
$ db2pd -db <データベース名> -transactions
<使用例>
- トランザクションは更新処理中であり、未コミットの状態です。
$ db2 +c "insert into t1 values (1, 'TESTDATA')" DB20000I SQL コマンドが正常に完了しました。
- db2pd コマンドを実行し、SpaceReserved および LogSpace を確認します。
$ db2pd -db <データベース名> -transactions Database Partition 0 -- Database <データベース名> -- Active -- Up 0 days 01:22:24 -- Date 05/29/2012 14:59:59 Transactions: Address AppHandl TranHdl Locks State Firstlsn Lastlsn LogSpace SpaceReserved 0x07000000C004AF00 2569 2 3 WRITE 0x0000000002C2DED7 0x0000000002C2DED7 124 194 0x07000000C004BE00 2570 3 0 READ 0x0000000000000000 0x0000000000000000 0 0
(補足) V9.7 FP5 以降, V10.1 FP5 以前、V10.5 FP7 以前をご利用の場合は、運用上の考慮点 2. を参照してください。- LogSpace
トランザクションのために予約されているログ・スペースの量。 - SpaceReserved
トランザクションに必要なログ・スペースの合計 (補正ログ・レコードの使用済みスペースおよび予約済みスペースを含む)。
- LogSpace
アクティブ・トランザクションは、未コミット・トランザクションのログ以外にロールバックに必要な予約スペースも含みます。
また、データベースごとに保持できるアクティブ・トランザクション・ログ・スペースの量は、データベース構成パラメーター LOGFILSZ、LOGPRIMARY、LOGSECOND で設定できます。
ただし保持できる量は有限です。必要であればコミットの回数を増やすなど、アプリケーションの作りを見直すことも必要です。
運用上の考慮点
また、データベースごとに保持できるアクティブ・トランザクション・ログ・スペースの量は、データベース構成パラメーター LOGFILSZ、LOGPRIMARY、LOGSECOND で設定できます。
ただし保持できる量は有限です。必要であればコミットの回数を増やすなど、アプリケーションの作りを見直すことも必要です。
運用上の考慮点
- 同じトランザクションであっても、常に同じログ・スペース量になるとは限りません。
定義された索引の数や索引の状態により、トランザクション・ログ・スペースの量は異なります。 データ更新の他に、ページ分割が発生した場合もログが記録されます。
また、表に含まれるデータや索引以外のオブジェクト操作や、表スペース管理のログ・レコードも状態により可変です。 - SpaceReserved および LogSpace とログ・ファイルに書き出されるログ量は異なります。このため、出力されるログ量を計測する目的でこの手法は使用できません。
- V9.7 FP5 以降, V10.1 FP5 以前、V10.5 FP7 以前では SpaceReserved と LogSpace がそれぞれ逆の意味として出力されていますのでご注意ください。V9.7 FP5 以降に含まれた以下の APAR によって変更されています。
IC73187: INCORRECT COLUMN HEADERS IN DB2PD -TRANSACTIONS OUTPUT
V10.1 FP6 以降、V10.5 FP8 以降は上記の通りの意味に再度修正されています。
IT10991: IN DB2PD -TRANSACTIONS OUTPUT, HEADERS FOR "SPACERESERVED" AND "LOGSPACE" ARE SWAPPED
[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PmcAAE","label":"Recovery-\u003ELogging"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]
Was this topic helpful?
Document Information
Modified date:
30 August 2023
UID
swg21617954