首页 / ORACLE / 解决Oracle被锁定
解决Oracle被锁定
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了解决Oracle被锁定,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1487字,纯文字阅读大概需要3分钟。
内容图文
一些性能方面的告警信息通过dba_outstanding_alerts表都能查到,被锁定的表如果长期得不到释放,在这里也能查到相关session的sid
一些性能方面的告警信息通过dba_outstanding_alerts表都能查到,被锁定的表如果长期得不到释放,在这里也能查到相关session的sid和serial#。
select * from dba_outstanding_alerts
v$locked_object视图可以看到当前被锁定的对象,只有那些一直存在的session才有可能是被锁定的,,因此不能简单匆忙的下结论,尤其是在RAC环境中,必须查看各个节点以发现相关的session在哪里。
select * from v$locked_object
有时候也可以根据对象名来查看锁的信息:
select sid,id1,type from v$lock where id1=(select object_id from dba_objects where object_name=upper('mytablename'));
找到了引起锁定的session,就可以找到对应的sid和serial#
select saddr,sid,serial#,paddr,username,status from v$session where sid=772
从而可以杀死这个session:
SQL> alter system kill session '772,9044';
System altered.
可以查询Oracle数据库的进程和操作系统进程之间的关联:
select spid, oSUSEr, s.program from v$session s,v$process p
where s.paddr=p.addr and s.sid=772
有时候一些进程要在操作系统杀死,这时可以用kill -9 pid的命令:
[root@erpdevdb ~]# ps -ef|grep sqlplus
oracle 11847 11126 0 16:39 pts/1 00:00:00 sqlplus -S @/oracle/home/droptable.sql
root 11889 11856 0 16:40 pts/2 00:00:00 grep sqlplus
[root@erpdevdb ~]# kill -9 11847
数据库对象锁定引起的阻塞是比较麻烦的事情,处理的时候一定要小心谨慎。
内容总结
以上是互联网集市为您收集整理的解决Oracle被锁定全部内容,希望文章能够帮你解决解决Oracle被锁定所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。