CentOS6最小化安装Oracle Client并配置sqlplus和sqlldr工具
CentOS6最小化安装Oracle Client并配置sqlplus和sqlldr工具
首先说说为啥要这么折腾,ETL服务器需要使用到sqlplus和sqlldr工具连接到DB Server,我又不想在ETL服务器装那个庞大的Oracle数据库。所以就这样修修补补的用了。
0.软件环境
Oracle Client 11.2.0.4.0 Linux x86_64
Oracle 11.2.0.3.0 Linux x86_64
1.下载Oracle客户端包
进入下载面:http://www.oracle.com/technetwork/topics/linuxsoft-082809.html
我的DB是安装的11.2.0.3.0,客户端是下载的最新的11.2.0.4.0,这个版本相差不大,使用上也没有什么问题
分别下载:
oracle-instantclient11.2-basic-11.2.0.4.0-1.i386.rpm和oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.i386.rpm
PS:需要申请Oracle账号才能下载
2.安装客户端包
rpm -ivh /app/rpm4centos6/oracle-instantclient11.2-basic-11.2.0.4.0-1.i386.rpm
rpm -ivh /app/rpm4centos6/oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.i386.rpm
3.配置环境变量
vi ~/.bash_profile
保存退出后,执行:. .bash_profile,让配置生效,. .两点之间有空格
4.配置TNS
这个文件Oracle对格式要求很高,空格都有讲究,建议直接从DB端拷贝过来即可
5.使用sqlplus命令
sqlplus yuzh/[email protected]
如果出现
sqlplus: error while loading shared libraries:libsqlplus.so: cannot open shared object file: No such file or directory
在/etc/ld.so.conf中最后加入/usr/lib/oracle/11.2/client/lib
如果出现类似如下格式的错误
就在https://centos.pkgs.org/找到系统对应版本的包安装上即可,也可以用yum,但是CentOS下yum会出现下载不了包的情况
6.配置sqlldr命令
Linux下OracleClient是不带有sqlldr功能的,连相应的sqlldr程序都没有,所有需要在DB将sqlldr模块的程序拷贝到OracleClient目录下才可以。
具体步骤如下:
6.1.拷贝sqlldr程序
在Oracle DB上搜索sqlldr和ulus.msb
将sqlldr拷贝到Oracle Client 的$ORACLE_HOME/bin 目录
将ulus.msb拷贝到Oracle Client 的$ORACLE_HOME/rdbms/mesg 目录
在上面的环境变量里,已经配置了
exportLD_LIBRARY_PATH=/usr/lib64:/usr/lib/oracle/11.2/client/lib:/usr/lib/oracle/11.2/client/lib32
6.2.执行sqlldr命令
出现如下格式的的错误时,
就用ldd `which sqlldr`检测sqlldr的依赖,也可以用同样的方式检测sqlplus的依赖
检测是缺少libclntsh.so.11.1和libnnz11.so,将Oracle DB上的这两个文件拷贝到Oracle Client 的$ORACLE_HOME/lib32 目录,并将该目录配置到 LD_LIBRARY_PATH环境变量中,再执行sqlldr就可以使用了。也可以到这个链接下载这两个文件:http://download.csdn.net/download/marchcuckoo/9938204