0

今天,我尝试在 Linux 64、Oracle10g 上使用 expdp 进行导出:

$ expdp system/manager parfile='datapump/dumps/exp_schema.par'

其中 exp_schema 是:

directory=DPDUMP
dumpfile=prod_exp_APPROOT.dmp
schemas=APPROOT
content=ALL

并得到一个错误:

ORA-39125: Worker unexpected fatal error in KUPW$WORKER.UNLOAD_METADATA while calling DBMS_METADATA.FETCH_XML_CLOB [TABLE_DATA:"APPROOT"."SED_OUTDOC"]
ORA-31642: the following SQL statement fails:
BEGIN "SYS"."DBMS_SCHED_EXPORT_CALLOUTS".SCHEMA_CALLOUT(:1,1,1,'10.02.00.01.00'); END;
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.DBMS_METADATA", line 907
ORA-31603: object "SCHEDULER$_PROGRAM_ARG" of type TABLE not found in schema "APPROOT"

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: at "SYS.KUPW$WORKER", line 6241

----- PL/SQL Call Stack -----
  object      line  object
  handle    number  name
0x368fb4540     14916  package body SYS.KUPW$WORKER
0x368fb4540      6300  package body SYS.KUPW$WORKER
0x368fb4540      2340  package body SYS.KUPW$WORKER
0x368fb4540      6861  package body SYS.KUPW$WORKER
0x368fb4540      1262  package body SYS.KUPW$WORKER
0x3704b4270         2  anonymous block

Job "SYSTEM"."SYS_EXPORT_SCHEMA_04" stopped due to fatal error at 16:57:57

我不明白怎么了。。

4

1 回答 1

0

这看起来像 Oracle 支持说明 1109045.1 中提到的行为,并建议使用 DDL 触发器,该触发器可能会阻止APPROOT删除拥有的对象。我相信,像这样简单的事情会导致您看到的错误,尽管我没有正确补丁级别的数据库来测试它:

create or replace trigger block_drop
before drop on schema
begin
    raise_application_error(-20001, 'Nope');
end;
/

支持说明表明它会影响 10.2.0.1 到 11.2.0.1,因此推测该行为在以后的补丁集中发生了变化。

于 2013-07-15T14:34:44.450 回答