今天我们来说说db2表被锁,如何解决。
解决方法:
1.看锁表的情况:
db2的命令中:
select * from SYSIBMADM.LOCKS_HELD;
db2 => get snapshot for locks on databasename
其中有一项: Application handle表示进程的标识号。该进程锁住什么表在下面会详细的列出来。
或者看看应用程序执行的情况
list application for database yourdatabasename show detail
2.断掉连接:
force application all //强行终止所有连接
terminate //清除所有db2的后台进程
将所有的进程全部清除
或者:
force application(进程号),将特定的进程号kill
原因:修改表结构表结构发生变化后再对表进行任何操作都不被允许,SQLState为57016(因为表不活动,所以不能对其进行访问),由于修改了表字段权限,导致表处于不可用状态。
解决方案:对表进行重构,重构的过程,就是对部分数据打散再重新组合的过程,直接给表解锁: