EXP备份数据库时出现错误提示 EXP-00056: 遇到 ORACLE 错误 29900 同一台机器同一个命令行不知道,求高手

即将导出整个数据库...
. 正在导出表空间定义
. 正在导出概要文件
. 正在导出用户定义
. 正在导出角色
. 正在导出资源成本
. 正在导出回退段定义
. 正在导出数据库链接
. 正在导出序号
. 正在导出目录别名
. 正在导出上下文名称空间
. 正在导出外部函数库名
. 导出 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: 导出终止失败 。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-04-10
这个问题原因是你用了高版本的exp去导出低版本的数据。
比如你的local数据是10.1的,而你的客户段用的是10.2或11g的。
方法:
1. 直接到local的那个机器上去做导出,再把文件拷贝过来。
2. 重新安装一个Oracle客户端,版本要不高于local机器上的那个版本追问

应该不是这个问题,因为生产库每天都需要备份的,昨天就没问题。今天没有做过任何升级的操作(这个是可以确定的),只是不知道被人调整了什么东西,才出现这个问题的。客户端和数据库的版本应该是没有问题的。 另外,生产库应该是linux环境的,我不会。

本回答被提问者和网友采纳
第2个回答  2012-09-14
数据库的版本是什么?
可以尝试一下用DBA角色的用户导出。比如说

exp system/password file=xxx.dmp tables=xxx 什么的再尝试一下
第3个回答  2012-09-11
不知道