软件开发DB2 update 锁

DB2 update语句卡住不动?

应用程序执行一条update语句,表数据2731行

update table set STEP_STATUS=0, BEGIN_TIME='', FINISH_TIME='' where cola ='PLAN-0-74-0-20200331005054-OCC-1' and colb=13

然后一直卡住,表可以查询这条数据,如果再执行一次也是卡住,db2diag.log 没有报异常,没有锁表。

日志报的这个不知道算不算异常
Locking memory management: GLM-memory low.
SP threshold activated.
GLM-lock list size = 33275244
GLM-lock list available = 5364654

参与10

4同行回答

atpeace331atpeace331  数据库管理员 , 银行
看了下您问题的描述,你们的环境使用的 DB2 pureScale 。db2pd -d <dbname> -cfdump struct=glm如果你们已经排除 update 时的 “锁等” 问题,看您提供的信息,我很怀疑是本地锁管理器 LLM 向 CF 的全局锁管理器 GLM 申请 “物理锁”时,GLM 内存资源...显示全部

看了下您问题的描述,你们的环境使用的 DB2 pureScale 。

db2pd -d <dbname> -cfdump struct=glm

如果你们已经排除 update 时的 “锁等” 问题,看您提供的信息,我很怀疑是本地锁管理器 LLM 向 CF 的全局锁管理器 GLM 申请 “物理锁”时,GLM 内存资源有限导致的问题,先试一试调大  CF_DB_MEM_SZ 内存中的  cf_lock_sz ,或者根据性能测试结果,决定考虑是否启用 CF内存自调整功能。

如果不是 cf 内存设置的问题,建议加强 CF 的监控数据收集,可以使用  MON_GET_CF_CMD() 、 MON_GET_CF_WAIT_TIME () 等表函数或者成熟的监控软件进行监控,根据监控进一步确定问题。

收起
银行 · 2020-04-02
浏览2971
liaogzhu 邀答
AmygoAmygo  DBA , 分布式事务数据库
建议开下Trace 是不是出现该行数据的死锁等待。显示全部

建议开下Trace 是不是出现该行数据的死锁等待。

收起
银行 · 2020-04-01
浏览2269
liaogzhu 邀答
tongshuaitongshuai  数据库工程师 , 北京新数科技有限公司
数据库里执行这条语句的application状态是什么?看看有没有锁等待或者latch等待。查数据库锁等待db2pd -d DB_NAME -wocks查数据库latchdb2pd -d DB_NAME -latch显示全部

数据库里执行这条语句的application状态是什么?看看有没有锁等待或者latch等待。
查数据库锁等待
db2pd -d DB_NAME -wocks
查数据库latch
db2pd -d DB_NAME -latch

收起
互联网服务 · 2020-03-31
浏览2422
liaogzhu 邀答
wade666wade666  数据库管理员 , Cloud
其他表更新有异常吗?把这个表reorg一下试试;实在不行trace大法显示全部

其他表更新有异常吗?
把这个表reorg一下试试;
实在不行trace大法

收起
软件开发 · 2020-03-31
浏览2447
liaogzhu 邀答

提问者

liaogzhu
数据库开发工程师PCI

问题状态

  • 发布时间:2020-03-31
  • 关注会员:6 人
  • 问题浏览:5273
  • 最近回答:2020-04-02
  • X社区推广