データベース - IBM DB2 - トラブルシュート - トランザクションログがいっぱいです
1. 概要 複数のレコードをまとめて「UPDATE」しようとするときなど・・・。 SQL0964C データベースのトランザクション・ログがいっぱいです。 というエラーになることがあります。 本ページは、下記のサイトを参考にさせていただきました。 「トランザクション・ログがフル (SQL0964C) になったときの対応」 2. 調査 状況を調査するには、データベースサーバで、管理者権限でコマンドプロンプト(端末)を開いて、次の2つのコマンドを実行します。 db2 list applications これは、他のページにも書いていますが、データベースに誰がどんなプログラムで接続しているかを表示します。 db2pd -db データベース名 -transactions これは、未コミットのトランザクションを表示します。 もし、単にトランザクションをかけたまま放置している状態であれば、その時点で、きっちりコミットかロールバックさせれば、現象は解消して、他に対策を行う必要はありません。 3. 一時的な対応 結局、トランザクションでとっておく領域が足りないってことですから、対処としては、トランザクションをかける単位を見直すか、ログの領域を増やすしかないわけですが・・・。 とにかくデータベースの更新を行うのを急ぐ場合は、一時的にでもログの領域を増やしましょう。 データベースサーバの管理者でログインして、「DB2」のコマンドプロンプトを管理者権限で開きます。 db2 CONNECT TO データベース名 db2 GET DB CFG FOR データベース名 で現在の値を確認しておきます。 ログ・ファイルのサイズ (4KB) (LOGFILSIZ) = と書いてあるのがログファイルサイズです。 変更するには、下記のコマンドを使用します。 db2 UPDATE DB CFG FOR データベース名 USING LOGFILSIZ サイズ 変更したら、データベースを再起動します。 db2 DISCONNECT データベース名 db2stop db2start
SQL0964C データベースのトランザクション・ログがいっぱいです。
「トランザクション・ログがフル (SQL0964C) になったときの対応」
db2 list applications
db2pd -db データベース名 -transactions
db2 CONNECT TO データベース名 db2 GET DB CFG FOR データベース名
ログ・ファイルのサイズ (4KB) (LOGFILSIZ) =
db2 UPDATE DB CFG FOR データベース名 USING LOGFILSIZ サイズ
db2 DISCONNECT データベース名 db2stop db2start