• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

db2解除死锁实例

mysql 搞代码 4年前 (2022-01-09) 17次浏览 已收录 0个评论
文章目录[隐藏]

背景 在团队协作的开发环境下,难免会遇到多个成员同时访问一张表的情况。在断点调试时,又非常容易加事务的长连接,引发死锁。 下面实例讲解解锁过程。 解锁过程 ①查找节点 解锁之前,需要知道数据库所在节点。 db2 = LIST NODE DIRECTORY 节点目录 目录中

背景

在团队协作的开发环境下,难免会遇到多个成员同时访问一张表的情况。在断点调试时,又非常容易加事务的长连接,引发死锁。

下面实例讲解解锁过程。

解锁过程

①查找节点

解锁之前,需要知道数据库所在节点。 db2 => LIST NODE DIRECTORY

节点目录

目录中的条目数 = 3

节点 1 条目:

节点名 = NDE5DC7D
注释 =
目录条目类型 = LOCAL
协议 = TCPIP
主机名 = 192.168.1.11
服务名称 = 50000

节点 2 条目:

节点名 = NDE5F473
注释 =
目录条目类型 = LOCAL
协议 = TCPIP
主机名 = 192.168.1.12
服务名称 = 50001

节点 3 条目:

节点名 = NDE9BBAE
注释 =
目录条目类型 = LOCAL
协议 = TCPIP
主机名 = 192.168.1.132
服务名称 = 50001

②登陆节点

db2 => attach to NDE5F473 user db2inst1 using db2inst1

实例连接信息

实例服务器 = DB2/LINUX 9.5.0
授权标识 = DB2INST1
本地实例别名 = NDE5F473
db2 => quit
DB20000I QUIT 命令成功完成。

③获取锁快照

需要注意的是,这个命令不是db2环境下执行的,需要先执行quit命令退出。 C:\Documents and Settings\Administrator>db2 GET SNAPSHOT FOR locks on crms > f:/lock.txt

————————————————-
db2 => GET SNAPSHOT FOR locks on crms

数据库锁定快照

数据库名称 = CRMS
数据库路径 = /home/db2inst2/db2inst2/NODE0000/SQL00
输入数据库别名 = CRMS
本文来源gaodaimacom搞#代%码@网-起的锁定 = 4
当前已连接的应用程序 = 13
当前正等待锁定的代理程序数 = 0
快照时间戳记 = 2011-03-31 13:21:53.285610

应用程序句柄 = 27151
应用程序标识 = C0A8013D.K506.110331013833
序号 = 00015
应用程序名 = db2jcc_application
CONNECT 授权标识 = DB2INST1
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集

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

应用程序句柄 = 27150
应用程序标识 = C0A8013D.K406.110331013832
序号 = 00014
应用程序名 = db2jcc_application
CONNECT 授权标识 = DB2INST1
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集

应用程序句柄 = 26676
应用程序标识 = C0A80169.I405.10EAC1004108
序号 = 00003
应用程序名 = QuestCentral.exe
CONNECT 授权标识 = DB2INST1
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1386
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集

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

应用程序句柄 = 26655
应用程序标识 = C0A80169.G605.10EAC1002623
序号 = 00006
应用程序名 = QuestCentral.exe
CONNECT 授权标识 = DB2INST1
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1386
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集

应用程序句柄 = 27201
应用程序标识 = 192.168.1.18.18183.110331014446
序号 = 00039
应用程序名 = db2jcc_application
CONNECT 授权标识 = DB2INST1
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集

应用程序句柄 = 27148
应用程序标识 = C0A8013D.K206.110331013830
序号 = 00016
应用程序名 = db2jcc_application
CONNECT 授权标识 = DB2INST1
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集

应用程序句柄 = 26773
应用程序标识 = C0A8013D.J805.110331005614
序号 = 00003
应用程序名 = db2jcc_application
CONNECT 授权标识 = DB2INST1
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集

应用程序句柄 = 28266
应用程序标识 = 192.168.1.56.39691.110331051526
序号 = 00001
应用程序名 = db2bp.exe
CONNECT 授权标识 = DB2INST1
应用程序状态 = 连接已完成
状态更改时间 = 未收集
应用程序代码页 = 1386
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集

应用程序句柄 = 28292
应用程序标识 = 192.168.1.56.64523.110331052144
序号 = 00001
应用程序名 = db2jcc_application
CONNECT 授权标识 = DB2INST1
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 4
总计等待时间(毫秒) = 未收集

锁定列表
锁定名称 = 0x0600030A1100A0FF0400000052
锁定属性 = 0x00000008
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 21468545041
对象类型 = 行
表空间名 = TABLESPACE_IDX
表模式 = DB2INST1
表名 = TMP_AC_ROLE
方式 = X

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

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

锁定名称 = 0x0600030A000000000000000054
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 2563
对象类型 = 表
表空间名 = TABLESPACE_IDX
表模式 = DB2INST1
表名 = TMP_AC_ROLE
方式 = IX

应用程序句柄 = 27147
应用程序标识 = C0A8013D.K106.110331013829
序号 = 00017
应用程序名 = db2jcc_application
CONNECT 授权标识 = DB2INST1
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集
应用程序句柄 = 27725
应用程序标识 = C0A80169.IB06.10EAC1030658
序号 = 00003
应用程序名 = QuestCentral.exe
CONNECT 授权标识 = DB2INST1
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1386
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集

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

应用程序句柄 = 27718
应用程序标识 = C0A80169.IA06.10EAC1030548
序号 = 00010
应用程序名 = QuestCentral.exe
CONNECT 授权标识 = DB2INST1
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1386
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集

应用程序句柄 = 27152
应用程序标识 = C0A8013D.K606.110331013834
序号 = 00013
应用程序名 = db2jcc_application
CONNECT 授权标识 = DB2INST1
应用程序状态 = UOW 正在等待
状态更改时间 = 未收集
应用程序代码页 = 1208
挂起的锁定 = 0
总计等待时间(毫秒) = 未收集

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

④解锁

根据分析,我们发现用户(192.168.1.56)及其应用程序句柄(28292),锁定了TMP_AC_ROLE表。联系相关人员之后,将其数据库链接关闭,以解除锁。

db2 => force application(28292)
DB20000I FORCE APPLICATION命令成功完成。

DB21024I 该命令为异步的,可能不会立即生效。

至此,一般情况的死锁就搞定了。如果有多个应用锁定了表,就一个一个的force即可。祝好运!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:db2解除死锁实例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址