impdp时卡住,DW等待library cache lock

同事反映impdp时在SCHEMA_REPORT/TYPE/TYPE_SPEC步骤卡住,1个多小时后也没有响应,

查下v$session:

select program,sid, event,blocking_session from gv$session  where program like ‘%DW%‘;

结果为:

DW01,98,library cache lock,213

DW03,13,library cache lock,213

DW02,36,library cache lock,213

DW00,213,library cache lock,213

所有的DW进程都在等待library cache lock,看了下之前的impdp参数:

impdp u/p dumpfile=f.dmp schemas=a remap_schema=a:b remap_tablespace=a:b TABLE_EXISTS_ACTION=REPLACE transform=oid:n

原来是之前有一次impdp时中途终止,所以再次impdp时使用了TABLE_EXISTS_ACTION=REPLACE的选项,但问题在于创建一个TYPE时,

CREATE OR REPLACE TYPE "O_INDO" as OBJECT

(

CODE_ID           varchar2(400)

);

而另一个TYPE O_INDO_TABLE依赖于这个O_INDO,所以导致无法replace这个O_INDO,所有的DW会话都在等待library cache lock,并且session阻塞了自身,形成了一个死锁。

解决办法:

DROP掉SCHEMA B,并重新执行impdp.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 16:21:23

impdp时卡住,DW等待library cache lock的相关文章

library cache lock和cursor: pin S wait on X等待

1.现象: 客户10.2.0.4 RAC环境,出现大量的library cache lock和cursor: pin S wait on X等待,经分析是由于统计信息收集僵死导致的.数据库在8点到9点期间,数据库两个节点都存在明显的cursor: pin S wait on X和library cache lock的等待: TOP 5 EVENT: Event Waits Time(s) Avg   Wait(ms) %   Total Call Time Wait   Class cursor

Oracle 11g下重现library cache lock等待事件

从下面的例子中可以看到,在生产数据库中对象的重新编译会导致library cache lock,所以应该尽量避免在业务高峰期编译对象.如果是package或过程中存在复杂的依赖关系就极易导致library cache lock的出现,所以在应用开发的过程中,也应该注意这方面的问题. session1: SQL> select * from v$version; BANNER -------------------------------------------------------------

Oracle11g 密码延迟认证导致library cache lock的情况分析

在 Oracle 11g 中,为了提升安全性,Oracle 引入了『密码延迟验证』的新特性.这个特性的作用是,如果用户输入了错误的密码尝试登录,那么随着登录错误次数的增加,每次登录前验证的时间也会增加,以此减缓可能对于数据库重复的口令尝试攻击. 但是对于正常的系统,由于口令的更改,可能存在某些被遗漏的客户端,不断重复尝试,从而引起数据库内部长时间的 Library Cache Lock的等待,这种情形非常常见. 如果遇到这一类问题,可以通过Event 28401关闭这个特性,从而消除此类影响,以

Library cache lock/pin详解

Library cache lock/pin 一.概述 ---本文是网络资料加metalink 等整理得来一个实例中的library cache包括了不同类型对象的描述,如:游标,索引,表,视图,过程,等等. 这些对象不能在他们被使用的时候改变,他们在被使用的时候会被一种library locks and pins的机制锁住. 一个会话中,需要使用一个对象,会在该对象上先得到一个library lock(null, shared or exclusive模式的)这是为了,防止其他会话也访问这个对

【翻译自mos文章】找到持有library cache lock session的方法

找到持有library cache lock session的方法 参考自: How to Find which Session is Holding a Particular Library Cache Lock (文档 ID 122793.1) 其实就是两种方法: 一.Systemstate Analysis 此处不做翻译,原文转载 Systemstate event will create a tracefile containing detailed information on eve

外键约束列没建索引导致大量library cache pin/library cache lock

清空一个100多万行的大表的数据,发现一直执行了几个小时: delete B001.T_B11; 通过以下SQL进行跟踪,发现经常会出现library cache pin和library cache lock的等待,怀疑有大量的recursive sql在执行,于是对这个session做了10046: 发现有大量的如下SQL执行,每删除1行T_B11,都会执行下面2条SQL一次, PARSING IN CURSOR #3 len=93 dep=2 uid=0 oct=3 lid=0 tim=14

rac数据库默认sql tuning advisor,导致大量library cache lock

问题现象:客户反映周六周日固定十点钟,一个程序会特别慢(大概10分钟),平时1到2秒.查看当时的日志发现:DBMS_STATS: GATHER_STATS_JOB encountered errors.  Check the trace file.Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_j002_51847.trc:ORA-04021: timeout occurred while waiting to l

Library Cache: Lock, Pin and Load Lock

What is "Library cache lock" ? This event controls the concurrency between clients of the library cache. It acquires a lock on the object handle so that either: One client can prevent other clients from accessing the same object. The client can

遇到Library cache load lock 等待事件

遇到Library cache load lock 等待事件: 在Troubleshooting Library Cache: Lock, Pin and Load Lock (Doc ID 444560.1)这篇文章中,详细解释了该等待事件: If an object is not in memory, then a library cache lock cannot be acquired on it. The object has to be loaded into the memory