做java开发的都知道oracle备份数据库的命令是exp,今天遇到了问题。

电脑系统是win10家庭版的,装了oracle,用exp命令备份执行,直接报EXP-00056:后面啥也没描述,然后下边有个导出终止失败。用PLSQL登录导出能正常备份,再在命令行执行exp能执行成功,一关闭PLSQL再执行exp备份命令就又出现失败。本来想写个备份的bat文件,然后在计划任务设个定时器,结果命令直接执行都是问题,折腾半天不得其解。还有SQLPLUS也执行不了。有没有遇到的,真不行我就打算重装oracle了,但怕的是重装了还有问题,感觉与win10家庭版有有关系。

解决办法:

选择和远程服务器相同版本客户端里面的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: 导出终止失败 。追问

你从哪复制的,我看着这么熟悉

温馨提示:答案为网友推荐,仅供参考