IBM Support

[Db2] トランザクション・ログの使用量を見積もる方法

Question & Answer


Question

トランザクション・ログの使用量を見積もる方法はありますか。

Answer

トランザクション・ログの使用量を計算式等で見積もることはできません。

しかし、各アプリケーションが現行トランザクションで確保しているログ・スペースの量は、トランザクションが未コミットの状態で db2pd コマンドを使って実測できます。
$ db2pd -db <データベース名> -transactions

<使用例>
  1. トランザクションは更新処理中であり、未コミットの状態です。
    $ db2 +c "insert into t1 values (1, 'TESTDATA')"
    DB20000I  SQL コマンドが正常に完了しました。
  2. 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
      トランザクションに必要なログ・スペースの合計 (補正ログ・レコードの使用済みスペースおよび予約済みスペースを含む)。
       
アクティブ・トランザクションは、未コミット・トランザクションのログ以外にロールバックに必要な予約スペースも含みます。
また、データベースごとに保持できるアクティブ・トランザクション・ログ・スペースの量は、データベース構成パラメーター 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
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"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"}]

Document Information

Modified date:
30 August 2023

UID

swg21617954