您的当前位置:首页正文

记一次HIS系统的expdp/impdp过程中的BUG

2020-11-09 来源:个人技术集锦

某医院的HIS系统做OGG,过程中impdp遇到很多问题,oracle的BUG太坑爹了!!! 环境: 生产库,AIX 10.2.0.4 RAC 容灾库:linux,10.2.0.5 单机,本地磁盘 存储是H3C的IP sun存储,平时存储磁盘IO很高,80%左右,数据量不是很大,150G左右,所以在晚上业务少

某医院的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个操作哪个能起作用

显示全文