1

我正在尝试从 Oracle DB 服务器 usint exp.exe 实用程序导出我的方案:

exp.EXE USERID=myscheme/myscheme@myserve FULL=Y FEEDBACK=1000 FILE=d:\ORACLE\full.dat LOG=d:\ORACLE\full.LOG

在日志文件中我得到下一个:

XP-00091: Exporting unreliable statistics
. . table expot                   DEF$_AQCALL
EXP-00008: ORACLE error 6550
ORA-06550: row 1, column 18:
PLS-00201: identificator 'SYS.DBMS_DEFER_IMPORT_INTERNAL' должен быть объявлен
ORA-06550: Строка 1, столбец 7:
PL/SQL: Statement ignored
ORA-06512: on  "SYS.DBMS_SYS_SQL", line 1204
ORA-06512: on  "SYS.DBMS_SQL", line 323
ORA-06512: on  "SYS.DBMS_EXPORT_EXTENSION", line 97
ORA-06512: on  "SYS.DBMS_EXPORT_EXTENSION", line 126
ORA-06512: on  line 1
. . table expot                  DEF$_AQERROR
EXP-00008: ORACLE error 6510
ORA-06510: PL/SQL: unchecked exception, 
ORA-06512: on  "SYS.DBMS_EXPORT_EXTENSION", line 50
ORA-06512: on  "SYS.DBMS_EXPORT_EXTENSION", line 126
ORA-06512: on  line 1

还有一些相同的情况。在那个导出被圈起来之后:我可以在日志文件中找到任何表的名称几次并且它不会停止。

此外,我发现要解决导出错误,我需要知道 SYS 方案的密码,但我没有这个。

4

1 回答 1

1

指定FULL=Y意味着您正在完全导出数据库中的所有模式,您连接的用户需要该EXP_FULL_DATABASE角色。如果您只想导出不需要的架构FULL。从有关导出模式的文档中:

导出实用程序支持四种操作模式:

  • 完整:导出完整的数据库。只有具有 EXP_FULL_DATABASE 角色的用户才能使用此模式。使用 FULL 参数指定此模式。

  • 表空间:允许特权用户将一组表空间从一个 Oracle 数据库移动到另一个数据库。使用 TRANSPORT_TABLESPACE 参数指定此模式。

  • 用户:使您能够导出属于您的所有对象(例如表、授权、索引和过程)。在用户模式下导入的特权用户可以导入指定用户集的模式中的所有对象。使用 OWNER 参数在 Export 中指定此模式。

  • 表:使您能够导出特定的表和分区。特权用户可以通过指定包含它们的模式来限定表。对于未指定架构名称的任何表,Export 默认为导出器的架构名称。使用 TABLES 参数指定此模式。

所以你想要一个用户模式导出,所以在你的命令中更改FULL=Y为。OWNER=myscheme

由于您使用的是 10g,因此您应该考虑使用数据泵而不是传统的导出工具。

于 2014-09-15T11:02:26.317 回答