在Ubuntu 12.04 x64上安装Oracle Instant Client 12.1和Oracle SQL Plus

时间:2020-03-21 11:49:00  来源:igfitidea点击:

首先,Oracle的即时客户端是一个免费的客户端软件,用于连接到Oracle数据库。

我们在这里不打算使用Alien来转换.rpm软件包,而是从zip压缩文件安装。

注册并下载即时客户端软件包

我们将需要注册才能下载该软件。
注册是免费的。

转到下载页面:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

注册后,我们将需要下载以下软件包:

Instantclient-basic-linux.x64-12.1.0.1.0.zip
Instantclient-sqlplus-linux.x64-12.1.0.1.0.zip

安装软件

将两个zip文件都移到“/opt /”目录,然后再更改为:

# cd /opt

解压缩档案:

# unzip instantclient-basic-linux.x64-12.1.0.1.0.zip
Archive:  instantclient-basic-linux.x64-12.1.0.1.0.zip
  inflating: instantclient_12_1/BASIC_README
  inflating: instantclient_12_1/adrci
  inflating: instantclient_12_1/genezi
  inflating: instantclient_12_1/libclntsh.so.12.1
  inflating: instantclient_12_1/libclntshcore.so.12.1
  inflating: instantclient_12_1/libnnz12.so
  inflating: instantclient_12_1/libocci.so.12.1
  inflating: instantclient_12_1/libociei.so
  inflating: instantclient_12_1/libocijdbc12.so
  inflating: instantclient_12_1/libons.so
  inflating: instantclient_12_1/liboramysql12.so
  inflating: instantclient_12_1/ojdbc6.jar
  inflating: instantclient_12_1/ojdbc7.jar
  inflating: instantclient_12_1/uidrvci
  inflating: instantclient_12_1/xstreams.jar
# unzip instantclient-sqlplus-linux.x64-12.1.0.1.0.zip
Archive:  instantclient-sqlplus-linux.x64-12.1.0.1.0.zip
  inflating: instantclient_12_1/SQLPLUS_README
  inflating: instantclient_12_1/glogin.sql
  inflating: instantclient_12_1/libsqlplus.so
  inflating: instantclient_12_1/libsqlplusic.so
  inflating: instantclient_12_1/sqlplus

将默认的Instantclient_12_1目录重命名为sqlplus:

# mv instantclient_12_1 sqlplus

创建一个日志文件夹:

# mkdir -p /opt/sqlplus/log/diag/clients

这有助于避免由于以下错误而导致创建'/home/$USER/oradiag_root'文件夹:

Directory does not exist for read/write [/opt/sqlplus/log] [/opt/sqlplus/log/diag/clients]

配置

将“/opt/sqlplus”添加到共享库路径LD_LIBRARY_PATH:

# export LD_LIBRARY_PATH=/opt/sqlplus:${LD_LIBRARY_PATH}

还要将'/opt/sqlplus'添加到PATH变量中,以避免使用绝对/相对路径:

# export PATH=/opt/sqlplus:${PATH}

将SQLPATH设置为“/opt/sqlplus”,以便可以找到glogin.sql:

# export SQLPATH=/opt/sqlplus:${SQLPATH}

请注意,无需为SQL Plus Instant Client设置ORACLE_HOME或者ORACLE_SID环境变量。

现在,我们希望这些变量在系统重新引导后保持不变。
我们还希望为所有用户登录系统时设置这些变量,以便他们可以使用sqlplus客户端而无需导出变量。

下面列出的是普通用户登录时(将Bash作为交互式登录Shell调用时)要处理的文件:

/etc/profile
~/.bash_profile
~/.bash_login
~/.profile

登录时处理的第一个文件是'/etc/profile'。
该文件集文件为所有用户设置全局环境。

用户的“~/.bash_profile”仅在存在时运行。
如果文件丢失,则bash然后查找要运行的~/.bash_login。
如果该文件也丢失,bash最终将尝试运行'~/.profile'。

“~/.bash_profile”和“~/.bash_login”文件可能无法在系统上退出。

在这种情况下,为所有用户设置全局环境变量的最佳方法是将其放入'/etc/profile'中。
做:

# echo "export LD_LIBRARY_PATH=/opt/sqlplus:${LD_LIBRARY_PATH}" >>/etc/profile
# echo "export PATH=/opt/sqlplus:${PATH}" >>/etc/profile
# echo "export SQLPATH=/opt/sqlplus:${SQLPATH}" >>/etc/profile

尝试连接到本地可访问的数据库:

# sqlplus 'Hyman@theitroad(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.1.3) (PORT=1521))(CONNECT_DATA=(SID=test)))'
SQL*Plus: Release 12.1.0.1.0 Production on Sun Nov 16 13:46:57 2014
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Enter password:
Connected to: Oracle Database 11g Release 11.2.0.3.0 - 64bit Production
SQL>

故障排除

sqlplus:加载共享库时出错:libaio.so.1

如果在运行sqlplus时收到以下错误:

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

确保已安装libaio1库:

# apt-get update && apt-get install libaio1

错误:ORA-21561:OID生成失败

如果出现此错误:

ERROR: ORA-21561: OID generation failed

检查主机名是否在'/etc/hostname'和'/etc/hosts'内部正确定义:

# echo "ubuntu" > /etc/hostname
# head -n1 /etc/hosts
127.0.0.1 localhost ubuntu