記一次HIS系統的expdp/impdp過程中的BUG
某醫院的HIS系統做OGG,過程中impdp遇到很多問題,oracle的BUG太坑爹了!!!
環境:
生產庫,AIX 10.2.0.4 RAC
容災庫:linux,10.2.0.5 單機,本地磁碟
儲存是H3C的IP sun儲存,平時儲存磁碟IO很高,80%左右,資料量不是很大,150G左右,所以在晚上業務少的時候做了一次expdp,然後把dmp檔案拷貝到linux機器上做impdp
容災庫由於本地磁碟,匯入24小時的時候才報錯,灰常坑爹!!!!
expdp:
expdp system/system directory=datapump DUMPFILE=his20140227a.dmp full=y logfile=expdp1.log
無報錯,無警告,成功匯出
impdp:
impdp system/system directory=datapump DUMPFILE=his20140227a.dmp full=y table_exists_action=replace logfile=impdp1.log job_name=imp1 PARALLEL=4
第一次報錯:
ORA-39014: One or more workers have prematurely exited.
ORA-39029: worker 1 with process name "DW01" prematurely terminated
ORA-31672: Worker process DW01 died unexpectedly.
Job "SYSTEM"."LWGIMP04" stopped due to fatal error at 20:41:42
ORA-39014: One or more workers have prematurely exited.
alert日誌:
Mon Mar 03 20:29:54 CST 2014
Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_dw01_9003.trc:
ORA-00600: internal error code, arguments: [15735], [2280], [2152], [], [], [], [], []
查詢metalink,是一個BUG,修改引數解決:ORA-00600[15735] When Querying A Table Whose Parallel Degree Is >1 (文件 ID 455202.1)
alter system set parallel_execution_message_size = 4096 scope=spfile;
第二次報錯:
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/GRANT/CROSS_SCHEMA/OBJECT_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/INDEX/INDEX
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/CONSTRAINT/CONSTRAINT
ORA-39125: Worker unexpected fatal error in KUPW$WORKER.PUT_DDLS while calling DBMS_METADATA.CONVERT [CONSTRAINT:"ZLHIS".
"物資分類_UQ_名稱"]
ORA-06502: PL/SQL: numeric or value error
LPX-00225: end-element tag "CON1" does not match start-element tag "NAME"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: at "SYS.KUPW$WORKER", line 6377
----- PL/SQL Call Stack -----
object line object
handle number name
0x1de7d49a0 15370 package body SYS.KUPW$WORKER
0x1de7d49a0 6436 package body SYS.KUPW$WORKER
0x1de7d49a0 12590 package body SYS.KUPW$WORKER
0x1de7d49a0 3397 package body SYS.KUPW$WORKER
0x1de7d49a0 7064 package body SYS.KUPW$WORKER
0x1de7d49a0 1340 package body SYS.KUPW$WORKER
0x1a8e045f8 2 anonymous block
Job "SYSTEM"."LWGIMP06" stopped due to fatal error at 07:54:20
查了metalink,沒有找到完全一樣的錯誤描述,根據一些網友的建議,加了imp引數(metalink上也提到這個,文件:[ID 878626.1],,,錯誤描述:ORA-39126: 在 KUPW$WORKER.PUT_DDLS [TABLE_STATISTICS] 中 Worker 發生意外致命錯誤
),由於沒有更好的辦法,只能參考這個試試了
impdp system/system directory=datapump DUMPFILE=his20140227a.dmp full=y EXCLUDE=STATISTICS table_exists_action=replace logfile=impdp1.log job_name=imp1 PARALLEL=4
今天早上檢視日誌,完全一樣的錯誤,又改了下impdp引數:
impdp system/system directory=datapump DUMPFILE=his20140227a.dmp full=y EXCLUDE=TABLE_STATISTICS table_exists_action=replace logfile=impdp1.log job_name=imp1 PARALLEL=4
同時根據網友某的建議,改了shared pool引數
impdp進行中,明天早上看結果吧,不知道這2個操作哪個能起作用
2013-03-07
嘗試了網友給的引數EXCLUDE=TABLE_STATISTICS,依然報同樣的錯誤
由於資料已經到匯入了,改用table_exists_action=skip,匯入沒有報錯,但是發現所有表的約束條件都沒有匯入進來,徹底無語中
目前採用手工建約束的方法,先把ogg跑起來!!!
2013-03-10
根據網友建議,把full=y去掉,只匯入zlhis使用者,依然報同樣的錯誤
問題待解決