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;

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

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

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

    你要去做一个大人,不要回头,不要难过。
  • 相关阅读:
    洛谷 [P1024]一元三次方程求解
    洛谷 [P1426] 通往奥格瑞玛的道路
    洛谷 [p1439] 最长公共子序列 (NlogN)
    洛谷 [P1182] 数列分段
    洛谷 [P1314] 聪明的质检员(NOIP2011 D2T2)
    洛谷 [P1280] 尼克的任务
    洛谷 [P1801] 黑匣子
    洛谷 [p1196] 银河英雄传说
    洛谷 [P2024] 食物链
    洛谷 [P1198] 最大数
  • 原文地址:https://www.cnblogs.com/yanggb/p/14129017.html
Copyright © 2011-2022 走看看