博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle之 RA-00054: resource busy and acquire with NOWAIT specified or timeout expired
阅读量:7129 次
发布时间:2019-06-28

本文共 2091 字,大约阅读时间需要 6 分钟。

1、 truncate 表报 ORA-00054 ,标明有事务正在操作该表

SQL> truncate table alldm.DM_XQKD_YUJING_D;
truncate table alldm.DM_XQKD_YUJING_D
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

2、 找到正在操作该表的session与sql

SQL> set linesize 400
SQL> set pagesize 400
SQL> col object_name for a40
SQL> select OWNER,OBJECT_NAME,OBJECT_ID from dba_objects where object_name='DM_XQKD_YUJING_D';

OWNER OBJECT_NAME OBJECT_ID

------------------------------ ---------------------------------------- ----------
ALLDM DM_XQKD_YUJING_D 7525915

SQL> select SESSION_ID,OBJECT_ID from v$locked_object where OBJECT_ID = '7525915';

SESSION_ID OBJECT_ID

---------- ----------
2226 7525915

SQL> set linesize 400

SQL> set pagesize 400
SQL>
select sql_text from v$session a,v$sqltext_with_newlines b
where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value
and a.sid=&sid order by piece;
Enter value for sid: 2226
old 3: and a.sid=&sid order by piece
new 3: and a.sid=2226 order by piece

SQL_TEXT

----------------------------------------------------------------
INSERT /*+APPEND*/ INTO DM_XQKD_YUJING_D SELECT /*+ORDERED*/ :B2
, A.AREA_NO, A.CITY_NO, A.XIAOQU_NO PLOT_ID, A.XIAOQU_NAME PLOT

3、 找到该session的os进程

select a.username,
a.sid,
a.serial#,
b.spid "OS Process",
to_char(a.logon_time,'DD/MM/YYYY hh24:mi:ss') "Logon time",
a.osuser,
a.program,
a.status
from v$session a, v$process b
where a.sid = &sid
and a.paddr = b.addr
/

USERNAME SID SERIAL# OS Process Logon time OSUSER PROGRAM STATUS

------------------------------ ---------- ---------- ------------------------ ------------------- ------------------------------ ------------------------------------------------ --------
ALLDM 2226 28311 76949 13/01/2018 06:04:24 bca JDBC Thin Client ACTIVE

4、 kill session

SQL> alter system kill session '2226,28311';
System altered.

5、 在os层面核实进程是否被kill

oracle@hbdw1:/oratmp$ps -ef | grep 76949
oracle 11057 116412 0 16:21 pts/2 00:00:00 grep 76949

6、 再次truncate成功

SQL> truncate table alldm.DM_XQKD_YUJING_D;
Table truncated.

转载于:https://www.cnblogs.com/andy6/p/8279613.html

你可能感兴趣的文章
BlockingQueue
查看>>
我的友情链接
查看>>
天兔(Lepus)数据库监控系统V3.0正式发布
查看>>
linux 查看所有存在的线程
查看>>
为了不自由的想象
查看>>
通过Zabbix API获取历史监控数据
查看>>
shell的使用
查看>>
server2008实验之八 DNS、IIS的服务器安装以及DNS服务器的配置
查看>>
https(2.4.6)
查看>>
java-第五章-计算100以内(包括100)的偶数之和
查看>>
惠普瘦客户机T5740安装ECP/COM--PCI扩展/转接卡图解
查看>>
hibernate一对多双向关联
查看>>
MySQL日志分析工具
查看>>
构建高性能WEB之HTTP首部优化
查看>>
邂逅北京:一座“神奇”的城市?
查看>>
final和static关键字
查看>>
Mysql-半同步
查看>>
GoLang发送邮件demo
查看>>
为Windows 用户准备的简明 Linux 词汇表
查看>>
VMware几个版本的比较
查看>>