前言
sqlplus
是连接oracle的一个官方客户端工具,我们在安装oracle服务端的时候其实就会默认把sqlplus
也给一起安装了。不过有时候我们只是想单独在其他服务器上面装个sqlplus
客户端来查数据,这个时候就需要自己单独去下载相关的依赖来实现了。本篇文章会介绍oracle官方提供的2种安装方式,对于zip
包安装的方法,以及如何升级sqlplus网上也很少文章提及,本篇文章会一并介绍,希望对各位读者有所帮助。
一、通过zip包进行安装
步骤1:登录Oracle官方网站,下载对应版本的依赖
传送门在此:sqlplus下载地址
注意在sqlplus 19及以上
版本的客户端,对于Linux服务器的glibc版本是有要求的,然后一般高版本的客户端可以兼容低版本的数据库,建议根据数据库版本和实际需要进行下载。我们找到需要下载的客户端版本后,会看到oracle提供了很多资源给我们下载,我们只需要关注2个资源就行:
instantclient-sqlplus-linux.x64-12.2.0.1.0.zip
-
instantclient-basic-linux.x64-12.2.0.1.0.zip
或者instantclient-basiclite-linux.x64-12.2.0.1.0.zip
前者是sqlplus客户端的安装包,后者是sqlplus
运行时需要用到的基础依赖包,基础依赖包选择basic
和basiclite
都可以,basiclite
相对来说只是少了一些字符集的支持,没有中文提示而已,个人建议直接选basic
就好,毕竟也就30多M而已。
步骤2:上传至服务器指定目录后进行解压
这里有一个小细节,我们解压的时候记得选择同一个解压目录,然后手动在解压出来的目录里面创建lib目录,并把*.so
文件迁移过去。
unzip instantclient-sqlplus-linux.x64-12.2.0.1.0.zip -d /usr/local
unzip instantclient-basic-linux.x64-12.2.0.1.0.zip -d /usr/local
mv /usr/local/instantclient_12_2 /usr/local/sqlplus_12_2
cd /usr/local/sqlplus_12_2
mkdir lib
mv *.so* lib
chmod +x sqlplus
ln -s /usr/local/sqlplus_12_2/sqlplus /usr/local/bin/sqlplus
步骤3:配置环境变量
上一步操作我们把sqlplus
放到/usr/local/bin
中,默认加入到PATH
变量的快捷执行目录中,但是sqlplus需要的动态链接库还没有加进去,我们需要把这部分的动态链接库的内容也一并加到环境变量中。
编辑/etc/profile
文件,保存下面的内容
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/sqlplus_12_2/lib
保存退出后,使用source /etc/profile
命令快速更新一下配置
步骤4:验证sqlplus
是否可以使用
执行sqlplus /nolog
看一下效果
如果出现这类错误的话(一般不会有),可以参考下面的方案来解决
权限问题 文件
libsqlplus.so
没有可读权限
此时查找文件·find / -name libsqlplus.so
修改权限chmod +r
路径/libsqlplus.so
环境变量设置有问题
echo $LD_LIBRARY_PATH
输出一下结果,看一下这里面是否有什么问题
二、通过rmp
包方式进行安装
步骤1:下载相关的安装包
这里我们还是进入官网下载地址,这次只需要关注基础包和sqlplus
运行包相关的rpm
包就行
- oracle-instantclient12.2-basiclite-12.2.0.1.0-1.x86_64.rpm 或者
- oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
步骤2:rpm
进行安装
如果是CentOS
和RedHat
的话,直接用下面的命令
rpm -i oracle-instantclient12.2-basiclite-12.2.0.1.0-1.x86_64.rpm
rpm -i oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
如果是Debian/Ubuntu
下先将其转成deb包
apt-get install alien
alien oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm
alien oracle-instantclient-sqlplus-21.1.0.0.0-1.x86_64.rpm
dpkg -i oracle-instantclient-basic_21.1.0.0.0-1.x86_64.rpm
dpkg -i oracle-instantclient-sqlplus_21.1.0.0.0-1.x86_64.rpm
安装完成后,自动生成客户端所在目录在/usr/lib/oracle/12.2/client64
,其中bin、lib目录分别存储可执行文件和对应的连接库,我们可以自行检查里面的文件是否生成了。
步骤3:配置环境变量
配置/etc/profile
,需要配置的主要就是PATH
和LD_LIBRARY_PATH
,前者用来把sqlplus
加入环境变量用于命令使用,后者用来配置so共享库文件。
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
保存后,执行source /etc/profile
刷新一下配置即可
步骤4:验证sqlplus
是否可用
执行sqlplus /nolog
看一下效果
三、关于sqlplus
客户端的升级
(一)zip
方式安装
客户端的升级步骤和安装差不多,先下载高版本的sqlplus安装包,然后和原先操作步骤基本一致,唯一有区别的地方有2处:
- 新建软连接的时候记得关联上新版本的sqlplus
- 更新
/etc/profile
文件中LD_LIBRARY_PATH
的最新地址
(二)rpm
方式安装的
步骤1:下载高版本的sqlplus
步骤2:先卸载掉高版本的rpm
安装包
rpm -e oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64
rpm -e oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64
注意
(1)正常来说应该是可以通过rpm -Uvh
命令来升级rpm包的,但是笔者试过后发现会报错,就只能卸载重装了
(2)如果不确定旧的rpm包名字的话,可以通过rpm -qa | grep oracle
来找
步骤3:重新安装高版本sqlplus
rpm -ivh oracle-instantclient19.24-basic-19.24.0.0.0-1.x86_64.rpm
rpm -ivh oracle-instantclient19.24-sqlplus-19.24.0.0.0-1.x86_64.rpm
参考文章:
Linux安装Oracle数据库SQLPlus客户端 https://www.cnblogs.com/wiseo/p/14145233.html