`
sqiutz
  • 浏览: 69863 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DB2 死锁

阅读更多

解决“SQL0911N 因为死锁或超时 ”的心得体会,与大家共享

最近应用程序中老是报:
[IBM][CLI Driver][DB2/6000] SQL0911N   因为死锁或超时,当前事务已被回滚。原因码为 "68"。   SQLSTATE=40001
或者是
[IBM][CLI Driver][DB2/6000] SQL0911N   因为死锁或超时,当前事务已被回滚。原因码为 "2"。   SQLSTATE=40001
以下是我查找原因和解决问题的方法和步骤,与大家共享。
1.调整数据库参数 LOCKLIST,MAXLOCKS,LOCKTIMEOUT,DLCHKTIME
   参数说明:
   LOCKLIST就是锁资资源大小,实际上就是以KB为单位的内存。
   MAXLOCKS是一个应用程序实际使用的锁资源所占用的LOCKLIST的比例,当超过这个比例时,锁就会产生升级。
   LOCKTIMEOUT锁等待超时时间,以秒为单位。当应用程序提出所资源申请时,如果超过了这个时间而没有得到就会产生锁定超时。
   DLCHKTIME是检测死锁的时间间隔,以毫秒为单位。
  
   增大LOCKLIST.
   首先查看数据库参数 get db cfg for database,
   得到
   LOCKLIST 1000
   MAXLOCKS 90
   LOCKTIMEOUT 45
   DLCHKTIME   60000
   LOCKLIST好像有些小,二话不说讲参数修改为10000后进行观察,错误出现的频率小了,问题还是存在,咬咬呀狠狠心改为30000
   呵呵,终于不出现了,我也清闲了一段时间。可是好几景不长大约过了一个月左右的时间,问题又出现了。郁闷ing。
2.利用控制中心查找有问题的SQL.
   使用控制中心的监控器可以非常方便的找到是否有死锁,应用程序锁等待数量、时间,锁升级等情况。
3.查看数据库的db2diag.log和db2inst.nfy
   通过检查db2inst.nfy发现
   006-08-07-16.51.22.475742 Instance:db2inst Node:000
   PID:53740(db2agent (DB) 0) TID:1 Appid:C0A8003A.KD70.00CAC7083407
   data management   sqldEscalateLocks Probe:3 DatabaseB

   ADM5502W   The escalation of "270083" locks on table "OWN   .POST_GOODS" to 
   lock intent "S" was successful.
   
   在POST_GOODS要有170083个锁啊,于是怀疑与POST_GOODS有关的应用有问题了。
4.让开发人员找到对应的SQL一看,我差点晕倒了。My god这儿居然没有任何条件。让开发人员根据业务需要增加查询条件。再重新发布应用,测试哈哈,不仅应用程序飞快,并且不在出现[IBM][CLI Driver][DB2/6000] SQL0911N   因为死锁或超时,当前事务已被回滚。原因码为 "68"。   SQLSTATE=40001
或者是
[IBM][CLI Driver][DB2/6000] SQL0911N   因为死锁或超时,当前事务已被回滚。原因码为 "2"。   SQLSTATE=40001

5.修改数据库参数
   问题的根本原因找到了,数据库参数也要调整一下, 将LOCKLIST修改为20000,太大了也不好!如果一个应用使用的锁资源超过了20000*90,这个应用程序本身肯定有问题了。

分享到:
评论

相关推荐

    db2死锁问题分析及解决方案

    db2死锁问题分析及解决方案,可以快速解决数据库问题。

    解决DB2死锁的一些资料整理

    解决DB2死锁的一些资料整理,解决解决DB2死锁的处理手段,方式和一些常规方法

    db2死锁问题.doc

    db2死锁问题.doc db2死锁问题.docdb2死锁问题.docdb2死锁问题.docdb2死锁问题.docdb2死锁问题.docdb2死锁问题.docdb2死锁问题.docdb2死锁问题.docdb2死锁问题.docdb2死锁问题.doc

    DB2发生死锁怎么办

    文章阐述了在db2数据库发生死锁时的PD方法,以及解决办法,对于db2初学者还是有一定参考价值的

    DB2死锁的解决过程全记录

    主要介绍了DB2死锁的解决过程全记录,本文造成死锁的是select语句,处理过程相当困难,需要的朋友可以参考下

    DB2解决表死锁

    NULL 博文链接:https://lxneliu.iteye.com/blog/1610166

    db2解除死锁

    讲述如何查看db2的死锁,并如何解决,个人觉得比较有用

    详解DB2 sqlstate 57016 SQLCODE=-668 原因码 “7”错误的快速解决办法

    您可能感兴趣的文章:数据库触发器DB2和SqlServer有哪些区别DB2死锁的解决过程全记录CentOS下DB2数据库安装过程详解db2数据库常用操作命令大全DB2新手使用的一些小笔记:新建实例、数据库路径不存在、客户端连接 .db2...

    DB2数据库处理表死锁

    db2 => get snapshot for locks on aaicdb Database Lock Snapshot Database name = AAICDB Database path = /db2data/aaicdb/db2inst1/NODE0000/SQL00 Input database alias = AAICDB Locks held = 32 ...

    DB2解数据库死锁.doc

    db2解锁数据库

    db2top资源查看命令详解

    db2top命令,可以详细的查看DB2用到的资源,锁的情况,正在执行的语句等,非常实用的命令工具

    细化解析:不同类型数据库的死锁问题

    MSSQL、DB2、Oracle之类的现代DBMS或者中间件可以帮助我们自动解决绝大部分死锁,其余一部分难以处理的死锁则由DBA在数据库控制端手工处理。就应用程序而言,不需要在源代码级过多考虑地考虑死锁问题。死锁的发生对...

    db2-技术经验总结

    1.59. 如果怀疑应用程序有死锁现象,如何确认是否死锁,并判断是哪些程序引起的死锁? 84 1.60. 数据库创建以后相关的目录和文件都有哪一些? 85 1.61. 自增列(IDENTITY) 86 1.62. 修改表结构的注意事项(原) 86 1.63....

    Linux系统怎么用命令重启db2数据库.docx

    查看死锁: db2 get snapshot for locks on Linux系统怎么用命令重启db2数据库全文共4页,当前为第3页。 Linux系统怎么用命令重启db2数据库全文共4页,当前为第3页。 db2 "select agent_id,tabna

    DB2 OLTP系统的物理设计最佳实践(中文版)

    应用程序死锁 46 性能和监控 47 最佳实践 49 数据库规模调整和容量管理 51 估算系统资源并设计一个均衡的系统 51 自调优内存管理器 STMM 54 DB2 配置顾问程序 55 最佳实践 57 可靠性 可用性和可伸缩性 59 DB2 High ...

    深入解析DB2--高级管理,内部体系结构与诊断案例.part1.rar

    7.3 死锁及调整案例 7.4 隔离级别与锁 7.5 最大化并发性 7.6 锁相关的性能问题总结 7.7 锁与应用程序开发 7.8 本章小结 第8章 索引设计与优化 8.1 索引概念 8.2 索引结构 8.3 理解索引访问机制 8.4 索引设计 8.5...

    db2数据库入门教程(官方中文版)

    第 1章 – DB2 Express-C是什么?..........................................................................................13 1.1免费开发、部署和分发… 无限制!.............................................

    db2优化资料汇总-很好的优化资料

    db2性能优化的文档 Db2性能调优快速参考! DB2数据库中提高INSERT性能详解 如何在DB2 UDB中正确的监控死锁

    DB2最新维护手册,从豆丁买来的。

    12、 检查有没有死锁 14 13、 对表和索引进行RUNSTATS 14 14、 检查表是否需要重组 14 15、 对需要重组的表进行重组 15 三、 DB2日常维护月操作 15 1、 查看DB2日志 15 2、 检查备份和日志是否都保存好了 15 四、 DB...

    db2数据库入门官方教程(中文版)

    第 1章 – DB2 Express-C是什么?..........................................................................................13 1.1免费开发、部署和分发… 无限制!.............................................

Global site tag (gtag.js) - Google Analytics