设为首页 收藏本站
查看: 912|回复: 0

[经验分享] db2解除死锁实例

[复制链接]

尚未签到

发表于 2016-11-14 06:57:41 | 显示全部楼层 |阅读模式
背景
  在团队协作的开发环境下,难免会遇到多个成员同时访问一张表的情况。在断点调试时,又非常容易加事务的长连接,引发死锁。
  下面实例讲解解锁过程。

解锁过程
①查找节点
解锁之前,需要知道数据库所在节点。
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
挂起的锁定           = 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即可。祝好运!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-299860-1-1.html 上篇帖子: db2诊断信息查询db2diag 下篇帖子: DB2学习文档5——验证安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表