同事反映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.
版权声明:本文为博主原创文章,未经博主允许不得转载。