DB2锁问题

Database Monitor(数据库管理器)——捕获活动实例的信息
Database(数据库)—————捕获所有数据库或单个数据库的信息
Applications(应用程序)————-捕获所有应用程序或单个应用程序的信息
Table Space(表空间)————-捕获数据库中各个表空间的信息
Table(表)—————————-捕获数据库中各个表的信息
Lock(锁)——————————捕获使用了数据库的应用程序持有的各种锁信息https://www.cndba.cn/hbhe0316/article/4807

db2 get snapshot for dbm
db2 get snapshot for database on testdb
db2 get snapshot for tablespaces on testdb
db2 get snapshot for bufferpools on testdb
db2 get snapshot for tables on testdb
db2 get snapshot for locks on testdb
db2 get snapshot for applications on testdb
db2 get snapshot for dynamic sql on testdb

1.监控案例1———动态SQL语句https://www.cndba.cn/hbhe0316/article/4807

db2 get snapshot for dynamic SQL on testdb > snap.out
grep -n "Deadlocks detected" snap.out | grep -v "= 0" | more

2.锁表
1。看锁表的情况
db2的命令中:

https://www.cndba.cn/hbhe0316/article/4807
db2 => get snapshot for locks on testdb

可以看到什么表被锁住了。
其中有一项: Application handle表示进程的标识号。该进程锁住什么表在下面会详细的列出来。
或者https://www.cndba.cn/hbhe0316/article/4807

list application for database testdb show detail

看看应用程序执行的情况
2。断掉连接:
通过https://www.cndba.cn/hbhe0316/article/4807

force application all //强行终止所有连接
terminate //清除所有db2的后台进程

将所有的进程全部清除
或者:

force application(进程号),将特定的进程号kill

3.
1.查询锁表情况,可以获取哪个表被锁,其中agent_id为哪个DB2进程锁了表
因为在终端下,不方便看,就把查询结果输出到lock.txt文件里

https://www.cndba.cn/hbhe0316/article/4807
https://www.cndba.cn/hbhe0316/article/4807 https://www.cndba.cn/hbhe0316/article/4807
db2 "export to lock.txt of del select * from sysibmadm.locks_held with ur"

2.拿到上述的agent_id xxx,查询具体锁表的IP和应用程序https://www.cndba.cn/hbhe0316/article/4807

db2 list application | grep xxx

3.杀掉这个进程https://www.cndba.cn/hbhe0316/article/4807

db2 " force application(xxx)"

版权声明:本文为博主原创文章,未经博主允许不得转载。

Linux,oracle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值