从应用服务器 10.7.123.156 应用 "0-40505" 长时间执行 IUD操作一直没有 COMMIT,导致活动日志空间用尽(logprimary+logsecond)*logsiz。
1、增加主日志与辅助日志的总数或日志大小,从而增加活动日志空间,但看了你的日志参数配置,应该按照步骤 2 查看应用层面的具体原因
2、 调查应用 "0-40505" 长时间执行 IUD操作一直没有 COMMIT 的原因,是否被锁或者其他原因阻塞住了?是否应用出现了异常的瞬时并发IUD操作?是否涉及打数据量的IUD操作?是否是应用设计问题?等等
3、“怎么查看这个应用 "0-40505" ,是在更新哪张表 ?”
兄弟,这个只能发现问题时,实时监控,才能发现。除非,你们的监控系统或事件监视器有保存应用执行sql历史的设计,否则,事后你很难知道当时应用当时执行了什么 SQL。
实时监控应用执行的 SQL,我给您提供两个还算凑合的方法:
1、使用 MON_GET_ACTIVITY监视表函数
SELECT t.application_handle, t.uow_id, t.activity_id, VARCHAR(t.stmt_text, 256) as stmt_text
FROM table(MON_GET_ACTIVITY(NULL, -1)) as t
APPLICATION_HANDLE UOW_ID ACTIVITY_ID STMT_TEXT
------------------ ----------- -------------- ------------------------------
46 1 1 SELECT * FROM SYSCAT.TABLES
47 1 2 INSERT INTO T1 VALUES(201901,Tom)
2、使用 db2pd 的 -apinfo 选项输出应用程序的执行语句信息
示例:
db2pd -d sample -apinfo 0-48420 | grep -p "Statement"