db2死锁问题

DB2数据库表死锁问题 最近遇到了db2数据库死锁的问题,经过几天的加班终于把死锁的问题基本解决了,虽然很痛苦,但是学到了很多东西。         1.环境配置:                    DB2 9.7,WAS7,操作系统AIX6.1         2.问题表现:                    应用日志总是提示SQLCODE=-911, SQLSTATE=40001, DRIVER=3. 阅读详情

1、             打开监视死锁的开关

db2 update monitor switches using lock on

 

2、             死锁的查看

C:/>db2 get snapshot for locks on yourdatabasename

数据库锁定快照

数据库名称 = JS
数据库路径 = D:/DB2/NODE0000/SQL00001/
输入数据库别名 = JS
挂起的锁定 = 5
当前已连接的应用程序 = 1
当前正等待锁定的代理程序数 = 0
快照时间戳记 = 2007-09-04 12:54:33.121513

应用程序句柄 = 10
应用程序标识 = *LOCAL.DB2.070904045330
序号 = 00001
应用程序名 = db2taskd
CONNECT
授权标识 = ADMINISTRATOR
应用程序状态 = 连接已完成
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集


应用程序句柄 = 9
应用程序标识 = *LOCAL.DB2.070904045329
序号 = 00001
应用程序名 = db2stmm
CONNECT
授权标识 = ADMINISTRATOR
应用程序状态 = 连接已完成
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集


应用程序句柄 = 8
应用程序标识 = *LOCAL.DB2.070904045327
序号 = 00011
应用程序名 = javaw.exe
CONNECT
授权标识 = ADMINISTRATOR
应用程序状态 = UOW 正在等待                (表示是这个连接导致产生了死锁)
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 5
总计等待时间(毫秒) = 未收集

锁定列表
锁定名称 = 0x020010000D0080080000000052
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 142606349
对象类型 = 行
表空间名 = USERSPACE1
表模式 = JS
表名 = US_CATALOG
方式 = X

锁定名称 = 0x02001000090080080000000052
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 142606345
对象类型 = 行
表空间名 = USERSPACE1
表模式 = JS
表名 = US_CATALOG                    (死锁产生的表)
方式 = X

锁定名称 = 0x01000000010000000100EA0056
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 0
对象类型 = 内部变化锁定
方式 = S

锁定名称 = 0x5359535348323030DDECEF2841
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 0
对象类型 = 内部方案锁定
方式 = S

锁定名称 = 0x02001000000000000000000054
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 2
挂起计数 = 0
锁定对象名 = 16
对象类型 = 表
表空间名 = USERSPACE1
表模式 = JS
表名 = US_CATALOG
方式 = IX

C:/>db2 list applications

授权标识程序 应用程序名 应用程序句柄 应用程序标识 数据库名称 代理序号
------------ -------------- -------------- ------------------------ ------------- ----------
ADMINIST db2taskd 10 *LOCAL.DB2.070904045330 JS 1
ADMINIST db2stmm 9 *LOCAL.DB2.070904045329 JS 1
ADMINIST javaw.exe 8 *LOCAL.DB2.070904045327 JS 1


在snapshot的第四段显示应用程序句柄为8的应用有锁存在,在其相应的锁定列表中显示锁定的表是US_CATALOG。

 

3、  死锁的解除

如果您确定是US_CATALOG表上发生了死锁,可以通过命令db2 "force application(8)"来杀掉该应用在数据库上的连接,8为Application handle。

注意如果force命令导致该应用的事务回滚得话,force命令不能马上断开应用在数据库上的连接,而是
要等到回滚完成后才能断开该应用的数据库连接。

C:/>db2 list applications show detail
//list applications for database cmsbj3 show detail


如果DB2在Window上,则可以使用“控制中心”->实例->右键“应用程序”,可以看到当前的锁定情况,并且可以强行关闭某个进程,也可以显示“锁定链”。

不过如果db2版本太低,无法打开显示“锁定链”

 

 

 
【DB2】如何精确定位到死锁 如何精确定位死锁 ——谁占有锁,谁等待锁 本次差旅发现过很多死锁,有很多死锁定位方式。但是能精确定位的还是比较少。通过本次差旅实践,发现通过dbpd来捕捉是最好的,也是最精确的。方法我总结如下: 1) 启用死锁监控 db2pdcfg  –catch deadlock 阅读详情

相关推荐

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

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

db2死锁

在DB2数据库中,死锁是一种常见的并发控制问题,它发生在两个或更多的事务相互等待对方持有的资源释放,导致所有涉及的事务都无法继续执行。- **批量操作优化**:对于需要更新大量数据的操作,考虑分批提交,以减少长时间锁定的可能性。- **定期监控**:使用DB2的性能监控工具定期检查系统的运行状态,及时发现潜在的死锁风险。- **锁定顺序一致**:确保所有事务以相同的顺序访问资源,这可以大大降低死锁的发生几率。- **使用合适的隔离级别**:根据应用需求选择最合适的事务隔离级别,避免不必要的锁定。

weixin_43803780的博客 992

Qt QChart实战:从零打造一个实时温度监控仪表盘(附完整源码)

本文详细介绍了如何使用Qt QChart模块从零构建一个工业级实时温度监控仪表盘。通过实战案例,展示了波形图的绘制、坐标轴配置、数据流模拟等关键技术,并提供了完整的源码实现,帮助开发者快速掌握Qt在数据可视化领域的应用。

weixin_42537919的博客 243

DB2查看死锁进程以及杀死死锁进程

方法一:使用SecureCRTdb2 "get snapshot for locks on 数据库名"db2 "force application(进程hander)"杀掉死锁进程方法二:用管理员帐户登陆,在"管理员模式下"使用select agent_id,tabname,lock_mode from table(snap_get_lock(BL_DEVP)) as aa查看:进

ん乖乖龙ん 1万+

【任何电机可使用的七段式s曲线-----包括matlab代码和simulink仿真】

S形加加速(T1)→>匀加速(T2)→减加速(T3)→>匀速(T4 )>加减速(T5)>匀减速(T6)-→>减减速(T7)

weixin_44312889的博客 6310

十二、基于FPGA实现slave SelectMAP配置逻辑

slave SelectMAP配置

weixin_41838250的博客 8755

db2 数据库死锁的解决方法

db2 get snapshot for locks on sample db2 get db cfg for sample db2 update db cfg using dlchktime 10000 -查看数据库管理器级别快照信息      db2 get snapshot for dbm  -查看数据库级别快照信息      db2 get snapshot for dat

荣耀之路 1万+

golang 线上事故

golang 线上事故 最近公司要做大促的一些活动。并且单量,qps持续上涨。之前使用的是django python 语言做的一个服务端。目前已经部署的国家里面最多的国家会有300+个实例。大促期间还可能会增加一个实例数。这么多的实例部署,回滚的时间都会特变长,除了问题也不好定位。并且如此多的一个机器,连接数* 实例数也会导致DB等其他服务扛不住这么大的并发。所以决定上go服务解决性能问题。 ...

lcf枫的博客 1538

linux db2表死锁,性能测试中DB2数据库死锁问题浅析

一、引言性能测试中发现死锁,是比较严重的问题。笔者从事主机性能测试多年,死锁问题却较为少见。有幸在一个小项目的测试中,发现死锁,倒成了一次难得的学习机会。在笔者进行该项目测试时,选用同一行部100个账户,执行关联账户和解除关联交易测试。当开展解除关联交易测试因成功率不足而排查问题时,发现其逆交易关联账户交易出现少量死锁。进一步定位该问题过程中,解除关联交易也出现一例因死锁导致交易失败的情况。异常表...

weixin_26820341的博客 1061

电价预测的Transformer实战:从注意力机制到超长序列建模

本文深入探讨了Transformer模型在电价预测领域的实战应用,对比了其与LSTM在处理长序列依赖和误差累积问题上的优劣。文章详细解析了自注意力机制的原理,并提供了处理超长序列的位置编码方法、构建专用预测模型的完整PyTorch代码,以及防止信息泄露的关键技巧。通过实战对比,展示了Transformer在并行计算、长距离建模和预测精度上的显著优势,并分享了应对极端波动和提升模型效率的高级优化策略。

f6g7h8i9j的博客 541

Zemax操作--2(单透镜和双胶合透镜优化)

单透镜 要求 镜头数据里面的数量变化后要重新设计优化函数 设计 一、初始参数 按照要求输入波长、入瞳孔径、视场数据编辑器如图 物面--透镜前表面--透镜后表面--相面(镜头数据再插入一个面如图) 将2面曲率半径F数设置为10,zemax自动给出合适值 设置面2的边缘光线高度,zemax自动给出合适值 二、评价参数设置 将面1曲率半径设置为变量 再设置评价函数告诉zemax我们需要什么条件,评价函数默认即可 执行优化 双胶合透镜 要求 ...

lzy750750的博客 1万+

DB2频繁出现死锁,常用解决问题的命令

--DB2频繁出现死锁,常用解决问题的命令db2 get snapshot for locks on sampledb2 get db cfg for sampledb2 update db cfg using dlchktime 10000 -查看数据库管理器级别快照信息 db2 get snapshot for dbm -查看数据库级别快照信息 db2 get snapsho...

weixin_30642267的博客 204

Springboot+Vue 实现鸿蒙商城管理系统开发实践

通过使用 Springboot 和 Vue 技术栈,我们成功实现了鸿蒙商城管理系统的开发。系统具备用户管理、商品管理、订单管理、库存管理和统计分析等功能,支持 Web 端和鸿蒙端的访问和操作。在开发过程中,我们充分利用了 Springboot 的快速开发优势和 Vue 的组件化开发特点,提高了开发效率和系统的可维护性。同时,通过与鸿蒙设备的集成,实现了多设备之间的数据交互和协同工作,提升了用户体验。

ZXJ_SXT的博客 1324

DB2 11.5 锁等待和死锁问题处理

数据库中之所以会存在死锁或者锁等待,是因为某一事务执行时间过长,导致锁没有及时释放,那么我们的解决办法就是,事务过程尽量要短,并且事务中的sql执行要快,这样才不会有过多的锁等待。还有一个原因,就是一些执行糟糕的sql,比如走了全表扫描,那么它会占据表中大量的锁,导致锁住了其他行,其他用户只能等待。 解决锁等待,要注意以下几点: 优化查询 Sql,采用db2advis建立合适的索引,使得其能够...

rede 3620

2、探索谷歌云平台(GCP):入门指南

本文全面介绍了谷歌云平台(GCP)的入门知识,涵盖其全球基础设施、核心服务和使用方法。内容包括GCP区域与可用区结构、创建免费账户、配置计算资源(如GCE虚拟机)、存储类型(PD、Filestore、GCS)、网络架构(VPC)、组织与项目管理、身份访问控制(IAM),以及计算、存储、数据库、大数据和人工智能等各类云服务。文章还提供了资源规划、安全管理和成本控制等实用建议,帮助用户快速上手并高效利用GCP构建可扩展的云解决方案。

uber9的博客 255

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

oracle 物化视图导致死锁,DB2频繁出现死锁,常用解决问题的命令

--DB2频繁出现死锁,常用解决问题的命令db2 get snapshot for locks on sampledb2 get db cfg for sampledb2 update db cfg using dlchktime 10000-查看数据库管理器级别快照信息db2 get snapshot for dbm-查看数据库级别快照信息db2 get snapshot for databas...

weixin_30552495的博客 273

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

记录一次问题解决:DB2死锁解决办法(SQLCODE=-911, SQLSTATE=40001)

(DB2的数据库)在做update更新的时候,发生了死锁。后台报的错误为:SQLCODE=-911, SQLSTATE=40001 --------------------------------------- SQLCODE=-911, SQLSTATE=40001 错误的原因:是在执行update语句的时候发生了死锁 SQLCODE=-911, SQLSTATE=4000...

1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: Oracle实例创建和启动
下一篇: jsp有关在ie中打开pdf文件的问题
xiaosu_521
博客等级 码龄19年 20粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值