即将导出整个数据库...
. 正在导出表空间定义
. 正在导出概要文件
. 正在导出用户定义
. 正在导出角色
. 正在导出资源成本
. 正在导出回退段定义
. 正在导出数据库链接
. 正在导出序号
. 正在导出目录别名
. 正在导出上下文名称空间
. 正在导出外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出对象类型定义
. 正在导出系统过程对象和操作
. 正在导出 pre-schema 过程对象和操作
. 正在导出簇定义
EXP-00056: 遇到 ORACLE 错误 29900
ORA-29900: 运算符连接不存在
ORA-06540: PL/SQL: 编译错误
ORA-06553: PLS-907: 无法加载库单元 XDB.XDB_FUNCIMPL (由 XDB.UNDER_PATH 引用)
EXP-00056: 遇到 ORACLE 错误 29900
ORA-29900: 运算符连接不存在
ORA-06540: PL/SQL: 编译错误
ORA-06553: PLS-907: 无法加载库单元 XDB.XDB_FUNCIMPL (由 XDB.UNDER_PATH 引用)
EXP-00000: 导出终止失败
今天就是做了个操作把public权限都收回来了,还有一个人不知道做了什么操作。求高手解答为什么会出现这种问题,重要的是怎么解决?! PS因为是生产库不能停数据库!
解决办法:
选择和远程服务器相同版本客户端里面的exp.exe。
至于里面的参数buffer size的话,用默认值也行,假如想快点的话,就设置大一点。例如设置为512000kb,这样假如你本机内存不大的话,可以机器做别的会慢。不过导出的速度快。
用plsql导出dmp格式数据库时,左侧“对象”里面默认选择的是“All object”,记得改为“My object”,然后在选择所有的表右键选择“导出数据”,之后当然是选择oracle导出,除非你不想导出dmp格式文件。因为默认为“All object”时有大量的系统表,这些表导出数据库的时候你是不需要的,而这些系统表数据量很大,导出的话很容易会报错。
原因:
导出用的可执行文件exp.exe为本地装的oracle服务器端,本地版本高于远程服务器版本。
log:EXP-00056: 遇到 ORACLE 错误 6550 ,
ORA-06550: line 1, column 41:
PLS-00302: component 'SET_NO_OUTLINES' must be declared ,
ORA-06550: line 1, column 15:
PL/SQL: Statement ignored ,
EXP-00000: 导出终止失败 。
应该不是这个问题,因为生产库每天都需要备份的,昨天就没问题。今天没有做过任何升级的操作(这个是可以确定的),只是不知道被人调整了什么东西,才出现这个问题的。客户端和数据库的版本应该是没有问题的。 另外,生产库应该是linux环境的,我不会。
本回答被提问者和网友采纳