解决办法:
选择和远程服务器相同版本客户端里面的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: 导出终止失败 。
你运行TNSPING XWSP-PRD通吗(看看显示的连接配置和你列出来的是否一致)如果你plsqldev能够连接,但命令行exp不可以,多半是你机器上有多套oracle客户端配置导致(有些软件会自动安装oracle客户端)
你可以在d\oracle\product\10.2.0\db_1\bin下执行exp试验下,这样会用到你上面列出来的连接配置
首先,清空DATA_PUMP_DIR环境变量:\x0d\x0aC:\>setDATA_PUMP_DIR=\x0d\x0a\x0d\x0a创建DATA_PUMP_DIR的目录:\x0d\x0aCONNECTSYSTEM/MANAGER\x0d\x0aCREATEORREPLACEDIRECTORYdata_pump_dirAS'D:\DataPump'\x0d\x0aGRANTread,writeONDIRECTORYdata_pump_dirTOscott\x0d\x0a\x0d\x0a--Onwindows,placeallexpdpparametersononesingleline:\x0d\x0a\x0d\x0aC:\>expdpsystem/manager@my_db_aliasDUMPFILE=expdp_s.dmp\x0d\x0aLOGFILE=expdp_s.logSCHEMAS=scott\x0d\x0a\x0d\x0a如果SCOTT用户不是授权用户,不能使用默认的DATA_PUMP_DIR。\x0d\x0aORA-39002:invalidoperation\x0d\x0aORA-39070:Unabletoopenthelogfile.\x0d\x0aORA-39145:directoryobjectparametermustbespecifiedandnon-null\x0d\x0a\x0d\x0a用户SCOTT的解决方法:如上面5.3,SCOTT可以设置环境变量DATA_PUMP_DIR为MY_DIR:\x0d\x0a--Onwindows,placeallexpdpparametersononesingleline:\x0d\x0a\x0d\x0aC:\>setDATA_PUMP_DIR=MY_DIR\x0d\x0aC:\>expdpscott/tiger@my_db_aliasDUMPFILE=expdp_s.dmp\x0d\x0aLOGFILE=expdp_s.logSCHEMAS=scott\x0d\x0a\x0d\x0a或者这种特定场景下,用户SCOTT也可以有目录DATA_PUMP_DIR的读和写权限:\x0d\x0a--Onwindows,placeallexpdpparametersononesingleline:\x0d\x0a\x0d\x0aC:\>setDATA_PUMP_DIR=DATA_PUMP_DIR\x0d\x0aC:\>expdpscott/tiger@my_db_aliasDUMPFILE=expdp_s.dmp\x0d\x0aLOGFILE=expdp_s.logSCHEMAS=scott欢迎分享,转载请注明来源:内存溢出
评论列表(0条)