trouble shooting:ORA-00054

来源:这里教程网 时间:2026-03-03 22:04:24 作者:
  • 问题描述

    ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效 发生异常

    原因:其他Session已经对目标表做了操作,且未提交操作,导致锁表,新的Session无法再对表进行DDL操作。

  • 解决方法

    Plan-A:等待原session执行完对表的操作,或commit对表的操作。

    Plan-B:关闭原会话。

     --   查询被的会话  ID

    1
    select  session_id  from  v$locked_object;

    --  查询结果:  SESSION_ID-------9

     --   查询上面会话的详细信息:

    1
    SELECT  sid, serial#, username, osuser  FROM  v$session  where  sid = 9;

    --  查询结果:  serial#------99

     --   将上面锁定的会话关闭:

    1
    ALTER  SYSTEM KILL SESSION  '9,99' ;

     --  给出对象,直接把涉及到的会话全kill

    1
    2
    select  'ALTER SYSTEM KILL SESSION ' '' ||sid|| ',' ||serial#|| '' ';'  from  v$session  where  sid  in
    ( select  session_id  from  v$locked_object  where  object_id  in  ( select  object_id  from  dba_objects  where  object_name= 'C_xxx' ));

  • 相关推荐