有时需要在服务器安装 sqlplus 来被其它服务调用,此时若服务器不是数据库服务器,则需要在此服务器安装 sqlplus 工具。
下载
首先到官网下载工具:下载地址
下载如下两个包:
- oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
- oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
在服务器执行安装:
1 | rpm -ivh oracle-instantclient*.rpm |
配置
这里近安装客户端和 sqlplus,因而不需要配置 ORACLE_HOME
和 ORACLE_SID
这两个环境变量。
若要使 sqlplus 工具对所有用户可用,在系统环境变量 /etc/profile
添加:
1 | ... |
只对特定用户可用,在 ~/.bash_profile
内添加:
1 | ... |
此时,执行 sqlplus
命令就可以看到命令输出了。
对本服务器运行的 sqlplus 指定字符集,规避同数据库字符集不一致导致乱码问题。
连接数据库,执行语句查询 Oracle 服务器的语言、地域和字符集:
1 | select * from nls_database_parameters; |
按照查询结果拼接:
NLS_LANGUAGE
_NLS_TERRITORY
.NLS_CHARACTEST
这里举例查到的是:
NLS_LANGUAGE = AMERICAN
NLS_TERRITORY = AMERICA
NLS_CHARACTSET = AL32UTF8
即拼接为:AMERICAN_AMERICA.AL32UTF8
在服务器设置环境变量:
1 | NLS_LANG="AMERICAN_AMERICA.AL32UTF8" |
配置 TNS
1 | mkdir -p /usr/lib/oracle/12.2/client64/lib/network/admin |
路径也可为:
1 | mkdir -p /usr/lib/oracle/12.2/client64/network/admin |
在该文件夹新建 tnsnames.ora
文件,内容为 TNS 列表。
参考
- https://docs.oracle.com/database/122/SQPUG/SQL-Plus-instant-client.htm#SQPUG638
- http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html#ic_x64_inst
-EOF-