在数据库备份的时候,之前还是好用的,到前天就突然不好用了,备份使用的 expdp。
报错信息:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-31626: job does not exist
ORA-31638: cannot attach to job SYS_EXPORT_TABLE_01 for user XXX
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT_INT", line 428
ORA-39077: unable to subscribe agent KUPC$A_1_130352131073000 to queue "KUPC$C_1_20130812130351"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPC$QUE_INT", line 250
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
备份语句:
$ORACLE_HOME/bin/expdp username/password directory=backup_dir CONTENT=DATA_ONLY tables=${Table_Name} COMPRESSION=DATA_ONLY dumpfile=${Table_Name}.dmp logfile=${Table_Name}"_"${LOG_FILE}
$ORACLE_HOME/bin/expdp username/password directory=backup_dir CONTENT=DATA_ONLY tables=${Table_Name} PARALLEL=8 COMPRESSION=DATA_ONLY dumpfile=${tempname}"_"%u.dmp logfile=${tempname}"_"${LOG_FILE}
$ORACLE_HOME/bin/expdp username/password directory=backup_dir CONTENT=METADATA_ONLY schemas=username EXCLUDE=TABLE_STATISTICS dumpfile=${strufile}.dmp logfile=${strufile}"_"${LOG_FILE}
做了一些尝试,
1、清理并删除了默认表空间中 “SYS_EXPORT” 开头的表(网上搜索说是expdp导出时出现异常而没有删除掉的表,正常情况下备份完成后应该删除的),处理后备份还是报错;
2、修改了exec dbms_output.enable(1000000); 从(200000 到 1000000),还是报错;
3、去掉了PARALLEL 选项,还是报错;
问题还没有找到原因,找到原因后再更新!
根据oracle原厂工程师反馈,这是备份的时候触发了oracle的一个BUG,据说修复工作比较复杂