`
sqiutz
  • 浏览: 71335 次
  • 性别: 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死锁问题分析及解决方案 #### 一、引言 在数据库管理与维护过程中,死锁问题是一个常见的挑战,特别是在使用IBM DB2这样的大型关系型数据库管理系统时。本文将详细探讨DB2中死锁问题的分析方法及有效的解决...

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

    DB2死锁问题在数据库应用系统中是一种常见的性能瓶颈,特别是在新系统上线初期,由于测试不足和对DB2机制理解不深,可能会频繁出现。DB2死锁涉及到多个层面,包括系统参数配置、应用程序设计以及性能监控与维护。...

    db2死锁问题.doc

    ### DB2死锁问题解析与处理方法 #### 一、理解DB2死锁现象 **DB2**(DB2 Universal Database)是由IBM公司开发的一款关系型数据库管理系统。在多用户并发访问DB2数据库的过程中,可能会遇到所谓的“死锁”问题。...

    DB2解决表死锁

    本文将深入探讨“DB2解决表死锁”这一主题,结合提供的资源“DB2解除表锁.doc”,我们将讨论死锁的基本概念、DB2中的死锁检测、死锁预防以及如何在遇到死锁时进行有效的解决。 首先,我们要理解什么是死锁。死锁是...

    DB2死锁的解决过程全记录

    DB2死锁问题通常在涉及更新操作的SQL语句中出现,但在本案例中,一个普通的SELECT语句引起了死锁,这在实践中较为罕见。死锁的产生是由于多个事务在资源请求上形成循环等待,导致系统无法继续执行。解决DB2死锁的...

    DB2网上资源汇总

    6. 死锁解决:"解决数据库的死锁问题"和"当并发遇到隔离的时候 DB2"提供了处理DB2死锁的具体步骤和策略,包括使用DB2的死锁检测功能、事务回滚和死锁预防等技术。 7. 社区资源:这些HTML文件来自于各种技术社区,如...

    db2解除死锁

    在DB2数据库管理系统中,死锁是一个常见的问题,它发生在两个或多个事务相互等待对方释放资源,从而导致它们都无法继续执行。本篇文章将详细介绍如何在DB2中检测和解决死锁,特别是针对标题中提到的"db2解除死锁"的...

    DB2解数据库死锁.doc

    本文将深入探讨DB2数据库中的死锁现象、死锁检测以及如何解除死锁。 死锁是指两个或多个事务在执行过程中,因争夺资源而造成的一种相互等待的现象,若无外力干涉它们都将无法继续执行。在DB2中,当多个事务互相等待...

    DB2数据库处理表死锁

    ### DB2数据库处理表死锁知识点详解 #### 一、理解DB2中的死锁与锁机制 在DB2(Database 2)这种关系型数据库管理系统中,锁是一种用于确保数据一致性和完整性的关键机制。当两个或多个事务互相等待对方释放资源时...

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

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

    JCL错误代码.pdf

    S04C和S04E-DB2死锁 * 一段时间后再次尝试 S0C1-控制电路板故障 * 改写,而不读取 * 子程序不存在 * CALL错误参数无主子程序加载的程序 * 没有DCB(FILE STATUS = 90) * 双线打开文件(FILE STATUS = 92) * ...

    Linux系统重启db2数据库命令实例详解.docx

    10. **查看锁和死锁**:`db2 get snapshot for locks on db_name`获取锁的状态,`db2 "select agent_id, tabname, lock_mode from table(snap_get_lock('<db_name>')) as aa"`显示死锁信息。 11. **监控SQL性能**:...

    db2常见问题分析

    ### DB2 常见问题分析 #### 一、DB2 故障诊断与日志收集 当 DB2 数据库主机遇到重大故障时,我们可以通过 `db2support` 工具来快速收集数据库的诊断日志数据。这些数据对于后续的问题定位至关重要。 - **在可以...

    DB2锁相关情况介绍

    1. **死锁检测与避免**:当检测到死锁时,DB2会选择回滚其中一个事务,以解除死锁状态。 2. **锁升级**:当需要更高级别的锁时,DB2会自动升级已有的锁。 3. **锁等待时间**:DB2允许设置锁等待的时间限制,超过该...

    DB2资料数据备份,数据还原,DB2原理

    9. **并发控制**:QS06_DB2v8_Concurrency.pdf可能讲解并发环境下DB2如何处理多用户同时访问,如锁定机制、死锁检测和解决策略。 10. **修复包应用**:QS12_DB2v8_ApplyingFixpaks.pdf将涉及DB2的版本更新和修复包...

    db2_查询锁方法

    通过以上方法,我们可以有效地查询DB2数据库中的锁状态,从而帮助解决可能遇到的与锁相关的性能问题或死锁问题。这些信息对于理解数据库中并发控制的行为至关重要,并且对于数据库管理员来说是非常有价值的诊断工具...

    DB2 SQL性能调优秘笈

    ### DB2 SQL性能调优秘笈 在数据库领域,IBM DB2因其稳定性和高效性而备受推崇,尤其是在大型企业级应用中。对于DB2数据库管理员(DBA)来说,掌握有效的SQL性能调优技巧至关重要。这不仅能提升系统的响应速度,还...

    db2top资源查看命令详解

    ### DB2TOP 资源查看命令详解 #### 命令概述 `db2top` 是 IBM DB2 数据库管理系统中的一个性能监控工具,它主要用于监控和诊断 DB2 UDB(Universal Database)数据库在 DPF(Distributed Partitioned File System)...

Global site tag (gtag.js) - Google Analytics