程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> impdp時卡住,DW等待librarycachelock

impdp時卡住,DW等待librarycachelock

編輯:DB2教程

impdp時卡住,DW等待librarycachelock


同事反映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.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved