Chinaunix

标题: 请问各位高手我的db2表被锁定了,怎么解锁啊? [打印本页]

作者: guoguo781201    时间: 2003-02-20 10:06
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
db2 =>; get snapshot for locks on baan

            Database Lock Snapshot

Database name                              = BAAN
Database path                              = /data/db2v5/NODE0000/SQL00001/
Input database alias                       = BAAN
Locks held                                 = 37
Applications currently connected           = 5
Agents currently waiting on locks          = 0
Snapshot timestamp                         = 02-20-2003 09:39:33.337805

Application handle                         = 13
Application ID                             = *LOCAL.db2v5.030220011807
Sequence number                            = 0001
Application name                           = db2bp
Authorization ID                           = ROOT
Application status                         = UOW Waiting
Status change time                         = Not Collected
Application code page                      = 819
Locks held                                 = 0
Total wait time (ms)                       = Not Collected


Application handle                         = 14
Application ID                             = *LOCAL.db2v5.030220013509
Sequence number                            = 0001
Application name                           = db2v5_srv6.1
Authorization ID                           = TSHEN
Application status                         = UOW Waiting
Status change time                         = Not Collected
Application code page                      = 819
Locks held                                 = 35
Total wait time (ms)                       = Not Collected


怎么办啊?
作者: aura    时间: 2003-02-20 13:10
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
db2 force application all
db2 terminate
作者: guoguo781201    时间: 2003-02-20 13:37
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
谢谢aura
可以解释一下吗?
作者: aura    时间: 2003-02-20 13:41
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
不客气!共同进步嘛

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

在db2ic中可查到相关详细信息
作者: guoguo781201    时间: 2003-02-20 14:52
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
这样就可以解锁了吗?
作者: ddmmdd    时间: 2003-02-20 14:57
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
所有的连接都被中止了,当然锁也就没了。
其实你只需要将拿锁的连接force掉就行。
作者: Law    时间: 2003-02-20 15:10
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
你先用list applicat for database yourdatabasename show detail 来看看应用底执行情况!
作者: guoguo781201    时间: 2003-02-20 18:36
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
db2>;force application all
db>;terminate
但是这个只能停止应用啊,还是有表被锁劳的啊。。。
作者: vlife    时间: 2003-02-20 20:13
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
没有一个应用对数据库操作,表也会锁吗?
锁的原因是应用对资源的占用冲突,没有应用就没冲突了。
force application all后list applications还有连接吗?
作者: 大连老K    时间: 2003-02-21 08:30
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
实在不行db2stop算了
作者: iwin21cn    时间: 2003-02-26 11:06
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
force application(13) 就是杀掉13号进程
force application(14) 就是杀掉14号进程
OK了!
force application all是无奈之举
作者: iwin21cn    时间: 2003-02-26 11:07
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
force application(13) 就是杀掉13号进程
force application(14) 就是杀掉14号进程
OK了!
force application all是无奈之举
作者: yuly    时间: 2003-02-27 01:14
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
比如说我现在做INSERT或UPDATE,中途CTRL+C退出,然后去DROP这张表,肯定这时候DROP不掉,除非重启数据库,才可以,不知有谁能告诉我该怎么找到这个UPDATE或INSERT的进程,我想只要把进程找到,然后才可以用DB2 FORCE APPLICATION(进程号)的,而不要去重启数据库了
作者: Law    时间: 2003-02-27 09:04
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
你进行CTRL+C后,数据库会自动回复啊
作者: yuly    时间: 2003-02-27 22:59
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
law,但数据库自己恢复是需要时间,如果我做很大的表的INSERT或UPDATE操作时,等待可能要很长的时间,因为后台INSERT 或 UPDATE进程要慢慢释放的,若我能立刻找到那个进程KILL掉,就能直接对该表操作了,有时候不得已要重新启动数据库,还要加个FORCE的参数
作者: vlife    时间: 2003-02-28 10:36
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
数据库是需要回滚的,这是数据库保持一致性的一个手段,你在insert或者update的中间停掉,数据库当然需要回滚,最好的是等他回滚完。
作者: yuly    时间: 2003-02-28 22:05
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
但ORACLE里就有这样的功能,我用企业版管理工具立刻就能找到该SESSIONS,然后KILL掉,我想DB2里也应该有这样的功能的,有时候时间很急迫,不想等就是了
作者: ddmmdd    时间: 2003-03-01 11:43
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
不管在那个数据中,都要回滚或者提交!数据库会自动作的,这是他的机制。你所碰到的问题,是你的应用写的太烂,不是一般的烂!
作者: heon1978    时间: 2003-03-02 10:19
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
表被锁劳可用:
db2 list indoubt transaltions:查看
db2 list indoubt translations with prompting:解除
作者: iwin21cn    时间: 2003-03-03 09:46
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
只有写过烂程序后才会写出好的程序出来,不要紧!有问题大家讨论!
作者: ddmmmm    时间: 2003-03-04 10:29
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
直接FORCE 掉 Application handle 的那个应用就好了 [/img]
作者: mhxiaoyi    时间: 2003-03-06 13:16
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
原帖由 "heon1978" 发表:
表被锁劳可用:
db2 list indoubt transaltions:查看
db2 list indoubt translations with prompting:解除


这个是不是错了?
list indoubt TRANSACTIONS???
terminate  能使锁的表解锁吗?
我们刚刚重起机器了,好无奈!!
够傻的,呵呵~~~~~~~~~~~~~~~~~~~~~`
作者: mhxiaoyi    时间: 2003-03-06 13:34
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
请问
db2 update monisor switches using lock on
db2 get snapshot for locks on yourdatdabasename
是不是不能对在客户端实现?
作者: 大连老K    时间: 2003-03-06 13:43
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
原帖由 "mhxiaoyi" 发表:
请问
db2 update monisor switches using lock on
db2 get snapshot for locks on yourdatdabasename
是不是不能对在客户端实现?

应该不会吧
作者: mhxiaoyi    时间: 2003-03-06 13:46
标题: 请问各位高手我的db2表被锁定了,怎么解锁啊?
我试了,不可以的!!
作者: study123    时间: 2010-12-18 22:33
讨论这么多也没有找到合适的方法解决。
作者: Law    时间: 2010-12-21 19:56
恩,都讨论了7年了
作者: qingduo04    时间: 2010-12-21 23:24
表锁,是由于一个进程占用了你要用到的表,只有把这个进程force掉就可以了。
作者: chenlei8509    时间: 2010-12-29 10:54
db2 update monitor switches using lock on ;打开锁开关
db2 list application show detail | grep -i lock;查看系统当前存在的锁
db2 get snapshot for application agentid XXXXX;根据锁ID获取agent详细信息,如下:
。。。 。。。
。。。 。。。
ID of agent holding lock  = yyyy(其中一行,这个id就是锁源了)
。。。 。。。
。。。 。。。
db2 "force application (yyyy)";(force上面找到的锁源就可以了)
作者: jixuju    时间: 2011-01-19 16:53
load client from /dev/null of del terminate into 表名 nonrecoverable;
作者: yongruzhu    时间: 2011-06-22 16:04
一个问题用了七年的时间才解决,看来DB2很难学啊。
作者: free07036005    时间: 2011-12-28 16:00
感谢分享,学习了~~
作者: yuexing80    时间: 2011-12-28 17:07
yongruzhu 发表于 2011-06-22 16:04
一个问题用了七年的时间才解决,看来DB2很难学啊。


你说的解决方法是你楼上提到的命令吗?
load client from /dev/null of del terminate into 表名 nonrecoverable;

我没尝试过这方法,但觉得这方法存在风险。

LOAD命令失败可能导致表空间无法访问,只有马上备份表空间才能回复正常。

当然表空间小,可以冒险一下。

作者: sychangchun    时间: 2012-01-26 19:12
谢谢分享。
作者: epstar    时间: 2012-10-02 18:24
牛牛牛牛呀




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2