CentOS7服务器上部署Oracle客户端

Posted 古I月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7服务器上部署Oracle客户端相关的知识,希望对你有一定的参考价值。

环境

  操作系统:

  CentOS7.2.1511 x86_64

准备安装包

  在这个网站:https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 下载如下安装包

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   //这个是sdk 的,文件名上没有说明,特此说明 

  可以使用wget命令直接下载,也可以在windows上下载好了再通过WinSCP工具上传到服务器上。我的Oracle server端是10g,所以我找了个低版本的Client,在windows上试过11g的客户端是能连接10gserver的,所以我下载的是11.2。

安装

  我把下载好的rpm包放在了OracleClient这个目录下。

[[email protected] OracleClient]# rpm -ivh ./oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:oracle-instantclient11.2-basic-11################################# [100%]
[[email protected] OracleClient]# rpm -ivh ./oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:oracle-instantclient11.2-devel-11################################# [100%]
[[email protected] OracleClient]# rpm -ivh ./oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:oracle-instantclient11.2-sqlplus-################################# [100%]

  本次安装的时候没有指定安装路径,所以它会安装到默认路径下。使用如下命令可以查看这个rpm包的默认安装路径:

[[email protected] OracleClient]# rpm -qpl oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 
/usr/lib/oracle/11.2/client64/bin/adrci
/usr/lib/oracle/11.2/client64/bin/genezi
/usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1
/usr/lib/oracle/11.2/client64/lib/libnnz11.so
/usr/lib/oracle/11.2/client64/lib/libocci.so.11.1
/usr/lib/oracle/11.2/client64/lib/libociei.so
/usr/lib/oracle/11.2/client64/lib/libocijdbc11.so
/usr/lib/oracle/11.2/client64/lib/ojdbc5.jar
/usr/lib/oracle/11.2/client64/lib/ojdbc6.jar
/usr/lib/oracle/11.2/client64/lib/xstreams.jar

  在client64下创建目录 network/admin,然后把server端的tnsnames.ora上传到这个目录下 

配置环境变量

  在当前用户的家目录下打开文件:vim .bash_profile,添加如下几行:

export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export ORACLE_BASE=/usr/lib/oracle/11.2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=CHINESE_CHINA.AL32UTF8

  然后保存并退出。接下来使用source ~/.bash_profile,强制刷新配置文件。如果source执行后提示找不到命令,那么可能是你要source的文件内容有问题。

  在bash窗口输入sqlplus,如果提示:

[[email protected] ~]# sqlplus

SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 15 14:27:47 2019

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Enter user-name:

  这样就意味着客户端已经安装成功了。

  如果出现:

sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory 

  这说明你的环境变量配的不正确。

连接数据库

  接下来在终端中输入如下指令:

[[email protected] ~]# sqlplus bsits2/[email protected]_201

SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 15 16:58:23 2019

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> 

  这表示已经连接连到了数据库。在这个示例中,bsits2/[email protected]_201这个字符串中的bsits2/bsits2分别是目标数据库的用户名和密码,ORCL_201这个是你在TNS中配置的网络服务名。如果要退出sqlplus的话,只要在sqlplus的窗口中输入exit即可。

SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

让查询结果格式化输出

  在使用sqlplus的时候会遇到一条记录不能显示在同一行的情况。

  可以通过下面几个参数,根据实际情况进行调整:

show linesize : 查看当前设置的sqlplus输出的最大行宽
set linesize : 设置sqlplus输出的最大行宽
column : 修改显示字段的长度或名称
column col_name format a15       --将列col_name(字符型)显示最大宽度调整为15个字符
column col_num format 999999     --将列col_num(num型)显示最大宽度调整为6个字符
column col_num heading col_num2  --将col_num的列名显示为col_num2

 

  











以上是关于CentOS7服务器上部署Oracle客户端的主要内容,如果未能解决你的问题,请参考以下文章

基于CentOS7安装部署 Oracle 12c ?

CentOS7.3上部署安装Oracle12c

在 CentOS7 上部署 zookeeper 服务

如何在centos6和centos7上部署nfs共享服务器和客户端

在CentOS7上部署Memcached主主复制+Keepalived高可用架构

在CentOS7上部署Rabbitmq集群配置