ORACEL查询被锁定表并解锁释放session
问题描述:今天提交表单时,点击按钮页面没有任何反应,本以为js出问题了,调试发现js正常执行,然后到java方法里面debug,发现执行到操作数据库这一行的时候不能再继续执行,也没有任何报错信息。后确定使数据库“假死”造成的。
数据库“假死”:可能是该表被某一用户锁定,导致其他用户无法继续对该表进行任何操作。
解决方法:
1.获取所有“假死”的表,然后获取自己需要操作的表对应的sid和serial#
SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s
WHERE l.object_id = o.object_id AND l.session_id = s.sid;
2.根据获取到的sid和serial#将该表解锁释放session
ALTER system kill session 'sid, serial#';