• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle 查询死锁并解锁的终极处理方法

    一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀。

    1.下面的语句用来查询哪些对象被锁:

    复制代码 代码如下:
    select object_name,machine,s.sid,s.serial#
    from v$locked_object l,dba_objects o ,v$session s
    where l.object_id = o.object_id and l.session_id=s.sid;

    2.下面的语句用来杀死一个进程:

    复制代码 代码如下:
    alter system kill session '24,111';

    (其中24,111分别是上面查询出的sid,serial#)
    【注】以上两步,可以通过Oracle的管理控制台来执行。

    3.如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得进程(线程)号:

    复制代码 代码如下:
    select spid, osuser, s.program
    from v$session s,v$process p
    where s.paddr=p.addr and s.sid=24

    (24是上面的sid)

    4.在OS上杀死这个进程(线程):

    1)在unix上,用root身份执行命令:
    #kill -9 12345(即第3步查询出的spid)

    2)在windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为:
    orakill sid thread

    其中:
    sid:表示要杀死的进程属于的实例名
    thread:是要杀掉的线程号,即第3步查询出的spid。
    例:c:>orakill orcl 12345

    总结:oracle会话被锁是经常的。但有时alter system kill session 'sid,serial#';并不能彻底的杀死会话。只能通过杀死OS上对应的进程才行。

    您可能感兴趣的文章:
    • 讲解Oracle数据库中结束死锁进程的一般方法
    • Oracle数据表中的死锁情况解决方法
    • 简单说明Oracle数据库中对死锁的查询及解决方法
    • oracle 会话 死锁 执行sql 执行job的方法
    • Oracle删除死锁进程的方法
    • Oracle对于死锁的处理方法
    • Oracle外键不加索引引起死锁示例
    • Oracle 死锁的检测查询及处理
    上一篇:Oracle 如何创建和使用全文索引
    下一篇:Oracle 使用TOAD实现导入导出Excel数据
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Oracle 查询死锁并解锁的终极处理方法 Oracle,查询,死锁,并解,锁,