互联网服务Db2Db2运维管理

DB2 SQL Error: SQLCODE=-1476, SQLSTATE=40506, SQLERRMC=-964, DRIVER=3.67.27?

2019-08-28-01.46.19.144069+480 E395233260E636        LEVEL: ErrorPID     : 8940                 TID : 139961424668416 PROC : db2sysc 3INSTANCE: db2inst4             NODE : 003          ...显示全部

2019-08-28-01.46.19.144069+480 E395233260E636        LEVEL: Error
PID     : 8940                 TID : 139961424668416 PROC : db2sysc 3
INSTANCE: db2inst4             NODE : 003            DB   : AISMART2
APPHDL  : 0-48420              APPID: 10.7.123.156.45940.190827174730
AUTHID  : DB2INST4             HOSTNAME: BI-DB2
EDUID   : 487                  EDUNAME: db2agntp (AISMART2) 3
FUNCTION: DB2 UDB, data protection services, sqlpgResSpace, probe:2860
MESSAGE : ADM1823E  The active log is full and is held by application handle 
          "0-40505".  Terminate this application by COMMIT, ROLLBACK or FORCE 
          APPLICATION.
--日志配置
Log file size (4KB) (LOGFILSIZ) = 131072

Number of primary log files (LOGPRIMARY) = 200

Number of secondary log files (LOGSECOND) = 50

Changed path to log files (NEWLOGPATH) =

Path to log files = /home/db2inst4/db2inst4/NODE0000/SQL00001/LOGSTREAM0000/

收起
参与19

查看其它 4 个回答atpeace331的回答

atpeace331atpeace331数据库管理员银行

从应用服务器 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"

银行 · 2019-08-28

回答者

atpeace331
数据库管理员银行

atpeace331 最近回答过的问题

回答状态

  • 发布时间:2019-08-28
  • 关注会员:5 人
  • 回答浏览:8557
  • X社区推广