在oracle instantclient中添加expdp与impdp

expdp与impdp可以在客户端远程调用(但是要注意版本问题,并且生成的文件也在服务端)。
普通的oracle instantclient中并不带有expdp与impdp。

解决方法(以Linux环境为例):
1.从与客户端版本一致的服务端上拷贝expdp与impdp到客户端instantclient下。此时执行会报mesg找不到的错误。
2.从与客户端版本一致的服务端上拷贝$ORACLE_HOME/rdbms/mesg到客户端相应目录下,一般是expdp所在的上一层目录建立rdbms/mesg
3.注意instantclient需要带有sqlplus的版本,具体可以lld expdp查看是否有缺失。

UDE-00018: Data Pump client is incompatible with database version

错误描述:
客户端oracle版本为11.2.0.4.0,服务端oracle版本为10.2.0.1.0。在客户端执行

expdp ***/***@*** directory=DATA_PUMP_DIR dumpfile=TEST001 logfile=TEST001.log transport_tablespaces=TEST001

报错信息:

Export: Release 11.2.0.4.0 - Production on Wed Sep 2 15:27:25 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
UDE-00018: Data Pump client is incompatible with database version 10.2.0.1.0

原因:
高版本的客户端不能对低版本的服务端执行expdp 、impdp。
解决方案:
1.为了兼容跟多的服务端换用低版本的客户端(低版本客户端可以对高版本服务端执行expdp 、impdp)
2.替换为与服务端版本相同的客户端。
3.expdp与impdp调用的是两个plsql包,可以尝试写存储过程执行进行调用,而免去在客户端执行expdp与impdp。

参考信息:

Oracle 12c datapump error when exporting from 11g database

UDE-00018: Data Pump client is incompatible with database version (null)’ using Export Data P (70054)