Oracle数据表被锁的解决方法

之前一直用Mysql数据库,现在用Oracle会不习惯,mysql 是自动提交的,Oracle需要手动提交,所以有时会锁表

可以通过

select b.owner,b.object_name,a.session_id,s.serial#
from v$locked_object a,dba_objects b,gv$session s
where b.object_id = a.object_id and a.session_id=s.sid and owner='SUPAY';

来查出数据库名称,被锁表的名称,以及session_id,

v$locked_object 锁表

session_id:         会话id。通常与v$session关联。
object_id:          被锁对象标识。通常与dba_objects关联。
 oracle_username:    登录oracle用户名。
 os_user_name:       电脑用户名如:Administrator
 locked_mode:        会话保持的锁的模式。

v$session 会话表 

sid:    SESSION标识,常用于连接其它表

serial#: sid 有可能会重复,当两个session的sid重复时,有来区分session

dba_objects 数据库对象表

object_id:对象(表)的编号

kill掉锁住该表的会话

alter system kill session(sid,serial#: )

cmd登录oracle

sqlplus/nolog

conn username/password@数据库名称

猜你喜欢

转载自www.cnblogs.com/chexiedaping/p/9025665.html
今日推荐