• oracle 结束被锁的包或存储过程


    问题现象:

    在pl/sql编译包或者是存储过程procedure等,编译一直未响应。

     问题原因:

    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; 
    第一步:查找存储过程被哪些session锁住而无法编译
    
    
    select * FROM dba_ddl_locks where name =upper('heb_sdb_pay_opr_pkg');
    1.
    第二步:通过第一步得到的session_id,得到sid和serial#
    
    
    select t.sid,t.serial# from v$session t where t.sid=&session_id;
    1.
    第三步: kill 相关session
    
    
    alter system kill session '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;
    1.
    2.
    3.
    4.
    第二步:找到被锁的表,解锁

    --alter system kill session 'sid, serial#';
    ALTER system kill session '23, 1647';
    1.
    2.

  • 相关阅读:
    [LeetCode] Maximum Depth of Binary Tree
    C++11中常用的几个简写
    [LeetCode] Word Break
    [LeetCode] Linked List Cycle II
    sizeof
    string和整形数据之间的转换
    ASCII
    [LeetCode] Linked List Cycle
    机器学习总结-线性回归
    推荐系统初探
  • 原文地址:https://www.cnblogs.com/roak/p/15802867.html
Copyright © 2020-2023  润新知