今天在使用expdp工具备份数据的过程中遇见了比较难得的ORA-00600错误。由于数据泵导致600错误的例子并不是很多见。
简单看一下这个报错内容,供参考。
1.报错现象
secdb@secdb /db_backup/dpump_dir$ sh iata_boms_exp_isis.sh
Export: Release 10.2.0.3.0 - 64bit Production on Mon Apr 18 21:55:58 2011
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters and Data Mining options
Starting "IATA_BOMS"."SYS_EXPORT_SCHEMA_01": user_secooler/******** directory=dpump_dir dumpfile=user_secooler_exp_isis.dmp logfile=user_secooler_exp_isis.log parfile=expdp_user_secooler.par
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 3.125 GB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/VIEW/VIEW
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
ORA-39097: Data Pump job encountered unexpected error -600
ORA-39065: unexpected master process exception in DISPATCH
ORA-00600: internal error code, arguments: [17020], [0x271D12148], [], [], [], [], [], []
ORA-06512: at "SYS.KUPC$QUE_INT", line 895
ORA-01460: unimplemented or unreasonable conversion requested
ORA-39097: Data Pump job encountered unexpected error -600
UDE-00008: operation generated ORACLE error 31626
ORA-31626: job does not exist
ORA-39086: cannot retrieve job information
ORA-06512: at "SYS.DBMS_DATAPUMP", line 2745
ORA-06512: at "SYS.DBMS_DATAPUMP", line 3712
ORA-06512: at line 1
secdb@secdb /db_backup/dpump_dir$
2.问题原因
关于这个问题可以在MOS中的文章“ORA-00600 [17020] During Datapump Export/Import [ID 460936.1]”得到相关参考。
这是由于在数据泵导出数据时触发了Oracle Bug 4334700导致的。文中提到,该问题直到11g版本时才被修复。
更多信息可以参考MOS的Bug描述“Bug 4334700: sbe_server doesn't shows any symbols after changing directory”。
3.处理方法
针对这个问题有两种处理方法。
1)安装补丁或者升级数据库到11g,这个动作貌似有点夸张。
2)“鸵鸟策略”--不管不问
由于这个故障不是很轻易遇到,往往重新尝试数据导出后便会消失。
我这里就是采用了这种方法。暂时对这个错误视而不见。
4.小结
很多情况下600错误来势汹汹,后果惨重。然而个别情况下会有惊无险,本文提到的问题便是这种。
毕竟对于生产环境对其打补丁或者升级都是非常大的动作,一定要慎重。
Good luck.
secooler
11.04.18
-- The End --