db2 查杀死锁进程

时间:2022-06-01 16:59:50

db2 查杀死锁进程
db2 get snapshot for locks on <dbname>   (需要snapshot的访问权限)
db2 list applications
db2 "force application(8)"
在snapshot的第四段显示应用程序句柄为8的应用有锁存在,在其相应的锁定列表中显示锁定的表是US_CATALOG。
如果您确定是US_CATALOG表上发生了死锁,可以通过命令db2 "force application(8)"来杀掉该应用在数据库上的连接。
注意如果force命令导致该应用的事务回滚得话,force命令不能马上断开应用在数据库上的连接,而是要等到回滚完成后才能断开该应用的数据库连接。

可以用db2top -d db_name,进入按u,然后/ 输入表的名字,查看哪些application在这个表上加了什么锁。
如果想释放锁,只要force掉那些application就可以了。 db2 "force application(appl_id)"
不过建议force application之前,取快照看一下那个application在做什么,force之后,就会回滚,有些操作不可回滚,
这个对象就invalid了。