1. 程式人生 > >記一次HIS系統的expdp/impdp過程中的BUG

記一次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使用者,依然報同樣的錯誤

問題待解決