前阵子 hive 接口机故障导致重装了系统,原先所有的配置信息焕然一新,主机系统装好后,发现和 数据库的连接失败了,也无法通过 sqluldr sqluldr2 和 Oracle 进行文件交互了,今天的任务就是 把这个环境整好,辛苦一天也算是完成任务,作为新手,记录一下,方便以后使用;
1、安装 Oracle 客户端
首先:查询 Oracle 版本:
SELECT * FROM V$VERSION;
得到数据库版本后,去 Oracle 下载oracle 客户端 安装软件:
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
需要下载对应的 版本
上传压缩文件到自定目录:
/app/oracle;依次解压
instantclient-basic-linux.x64-11.2.0.4.0.zip
instantclient-sqlplus-linux.x64-11.2.0.4.0.zip
instantclient-sdk-linux.x64-11.2.0.4.0.zip
解压文件会自动放在这个 instantclient_11_2 路径下;
(也可下载指定的 rpm 包进行安装)
在 /app/oracle/instantclient_11_2/network/admin 下创建 tnsnames.ora
并编写配置信息
下面是重点:配置环境变量
如果不想将环境配置写在/etc/profile中配置内,也可以写在 .bash_profile中
export ORACLE_HOME=~/app/oracle/instantclient_11_2 export PATH=$ORACLE_HOME:$PATH export ORACLE_SID=oracl111 export TNS_ADMIN=$ORACLE_HOME/network/admin export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" export LD_LIBRARY_PATH=$ORACLE_HOME
ORACLE_HOME是你自己的安装地址,NLS_LANG是显示的字符编码集格式。
至此 客户端配置完成,执行sqlplus 时尽量给 sqlplus 赋权限;
2、安装 sqlldr sqluldr2
sqlldr 安装 客户端安装路径下创建 路径 rdbmsmesg
将 ulus.msb 上传至 /app/oracle/instantclient_11_2/rdbms/mesg/ 下
执行 sqluldr 验证安装成功
(ulus.msb 可以从生产 Oracle 环境下拉取)
sqluldr2 安装;
上传 sqluldr2_linux64_10204.bin 到 客户端安装目录,重命名 sqluldr2
执行 可执行程序 发现有问题:
发现当前环境有libclntsh.so.11.1,与sqluldr2 所需包差小版本号,尝试建立软连接文件
ln -s libclntsh.so.11.1 libclntsh.so.10.1
再次执行发现正常了;