配置oracle-client链接server
由于Oracle的imp/exp组件的操作原则--向下兼容,且有一些规则:
规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器;
规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件);低版本exp出的dmp文件,高版本可以imp(向下兼容);
规则3:从Oracle 低版本Export的数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 10 到 Oracle 11.对于两个不相邻版本间进行转换,如从Oracle 9 到 Oracle 11,则应先将数据输入到中间版本-Oracle 10,再从中间数据库转入更高版本Oracle 11.
客户端与服务端需保持版本一致。所有操作皆在root账户下进行操作。
1,安装oracle linux客户端
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
安装命令:rpm -ivh ~/tmp/oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm
2,配置环境变量
vi /etc/profile
export ORACLE_HOME=/usr/lib/oracle/11.2/client64/
export LD_LIBRARY_PATH=:$ORACLE_HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH:.
export TNS_ADMIN=$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME/bin:
#export NLS_LANG="simplified chinese_china.ZHS16GBK"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
3,配置tnsnames.ora文件
在/usr/lib/oracle/11.2/client64/下创建network/admin/文件夹,将tnsnames.ora放到此目录下
ORCL_192.168.1.170 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.170)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL)
(SERVER = DEDICATED)
)
)
4,配置exp和imp命令
从服务端拷贝exp和imp文件放到/usr/lib/oracle/11.2/client64/bin下面
从服务端拷贝expus.msb和impus.msb文件放到/usr/lib/oracle/11.2/client64/rdbms/mesg下面
如果报With the Partitioning, OLAP and Data Mining optionsexp: symbol lookup error: exp: undefined symbol: sldext错误,
则需要将服务端的libclntsh.so.11.1文件拷贝到客户端/usr/lib/oracle/11.2/client64/lib下面,覆盖同名文件即可。
如果出现-bash: /usr/lib/oracle/11.2/client64//bin/exp: Permission denied错误,则需要对文件进行授权
chmod +x /usr/lib/oracle/11.2/client64//bin/exp
chmod +x /usr/lib/oracle/11.2/client64//bin/imp