zoukankan      html  css  js  c++  java
  • oracle查看与杀掉锁表的进程

    使用oracle数据库的过程中有可能会因为某些操作导致锁表,一旦发生了锁表的情况程序就无法正常使用了,因此要学会如何查看与杀掉锁表的进程。

    查看锁表进程

    select sess.sid,
           sess.serial#,
           lo.oracle_username,
           lo.os_user_name,
           ao.object_name,
           lo.locked_mode
    from v$locked_object lo,
         dba_objects ao,
         v$session sess
    where ao.object_id = lo.object_id
      and lo.session_id = sess.sid;

    或者

    select *
    from v$session t1,
         v$locked_object t2
    where t1.sid = t2.session_id;

    杀掉锁表进程

    如果能查询出来记录,说明有锁表,这时候需要记录下sid和serial#,用于解除锁表(即杀掉锁表进程)。

    alter system kill session 'sid, serial#';

    要是杀掉了锁表进程之后并没有解决程序异常问题,可能是因为oracle有自己的进程管理策略,在很多情况下杀进程往往不能即时生效,这时候可以在语句末尾加上【immediately】再试试。

    alter system kill session 'sid, serial#' immediately;

    如果这样还不行的话,终极解决办法大概就是杀掉进程后重启程序服务了。

    因为锁表导致的程序异常问题能通过杀掉锁表进程的方式解决,但还是应该找到锁表的原因,从根源上解决以避免问题再次产生。

    "目的是应达到的效果(结果),目标是要达到效果的量化指标。"

    你要去做一个大人,不要回头,不要难过。
  • 相关阅读:
    个人作业3——个人总结(Alpha阶段)
    单元测试
    个人作业2——英语学习APP案例分析
    结对作业-基于GUI的四则运算
    个人作业1:小学四则运算——基于控制台
    个人作业3--------个人总结(Alpha版本)
    结对作业 2
    个人作业 2
    结对作业 肖荣森(201421123079) 苏上鑫(201421123081)
    作业1---四则运算
  • 原文地址:https://www.cnblogs.com/yanggb/p/14129017.html
Copyright © 2011-2022 走看看