oracle查看表锁并解锁

oracle查看表锁并解锁

当在一个应用程序能改动数据库,而其他应用程序都不能改动时,基本就说明表被锁了

查看锁

执行命令:select * from v$locked_object;

如果出现表或视图不存在的错误,是因为用户权限不够

以系统身份登陆oracle服务器授权:
grant select any dictionary to 用户名;

再次执行上面的命令:

c9470acebb96289e482e7feaedca2d1

其中locked_mode的取值为:

0:none
1:null 空
2:Row-S 行共享(RS):共享表锁,sub share
3:Row-X 行独占(RX):用于行的修改,sub exclusive
4:Share 共享锁(S):阻止其他DML操作,share
5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive
6:exclusive 独占(X):独立访问使用,exclusive

直接根据process解锁(Linux:kill -9 10856;Windows:taskkill /pid 10856 /F)就行,如果想查看更详细点的信息,可使用下面两条命令查看:

  • 根据object_id查看表名:select * from user_objects where object_id = 269827;

  • 查看表名被锁的行:select * from ALGOJR_TPARAMETERS for update skip locked;