目录
文章目录
一、概述
Oracle是甲骨文公司的一款关系数据库管理系统,采用了Client/Server软件系统体系结构。Sqlplus作为与Oracle数据库服务端进行交互的客户端工具,使用非常广泛,那么如何在Linux上安装Oracle客户端Sqlplus呢?
二、机器准备
服务器ip | 主机名 | 系统版本 |
---|---|---|
192.168.2.201 | myhost | Centos7.2 |
三、系统环境
[root@myhost ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@myhost ~]# firewall-cmd --state #查看防火墙的状态
running
[root@myhost ~]# firewall-cmd --list-ports #查看防火墙已经开放的端口
[root@myhost ~]# firewall-cmd --list-services #查看防火墙开放的服务
dhcpv6-client ssh
#httpd服务默认的端口是80,防火墙允许80/tcp端口访问
[root@myhost ~]# firewall-cmd --zone=public --permanent --add-port=80/tcp
success
[root@myhost ~]# firewall-cmd --reload #重新加载防火墙配置
success
[root@myhost ~]# setenforce 0 && getenforce
Permissive
[root@myhost ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
四、准备Oracle客户端安装包
安装说明:Oracle Instant client 是oracle提供的简便客户端, 支持多种平台。包括如下内容:
oracle客户端安装包 | 说明 |
---|---|
Instant client Package - basic | 运行OCI, OCCI, 和JDBC-OCI应用程序需要的所有文件。 |
Instant client Package - basiclite | 只包含英语错误信息, 只支持unicode, ascii, 西欧字符集。 |
Instant client Package - jdbc | 为jdbc增加了xa, 国际化和RowSet操作。 |
Instant client Package - sqlplus | 包含sqlplus和需要的库文件。 |
Instant client Package - sdk | 使用Instant Client开发Oracle 应用程序需要的头文件及示例makefile。 |
Instant client Package - odbc | 使用odbc时需要的库, 不是所有平台都有,除了linux平台 |
其中: basic 和 basiclite 两个包中必须选一个,sqlplus包必要安装, 其他包都是可选的。
现在,我们去Oracle官方网站,下载Oracle客户端基础包+sqlplus包(这几个包的版本最好保持一致)
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
下载完成之后,上传至linux系统指定的目录:
[root@myhost developer]# cd /home/tools/
[root@myhost tools]# ll
总用量 57156
-rw-r--r-- 1 root root 59865008 5月 12 13:37 oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
-rw-r--r-- 1 root root 610222 5月 12 13:36 oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
-rw-r--r-- 1 root root 828333 5月 12 13:36 oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
五、准备Oracle客户端需要的依赖
[root@myhost tools]# rpm -qa |grep libaio
[root@myhost tools]# yum install -y libaio libaio-devel
[root@myhost tools]# rpm -qa |grep libaio
libaio-devel-0.3.109-13.el7.x86_64
libaio-0.3.109-13.el7.x86_64
六、安装Oracle客户端基础包+sqlplus包
注意:软件包的安装需要用root 用户执行。
- 安装basic包
[root@myhost tools]# rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:oracle-instantclient11.2-basic-12################################# [100%]
- 安装devel包
[root@myhost tools]# rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:oracle-instantclient11.2-devel-12################################# [100%]
- 安装sqlplus包
[root@myhost tools]# rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:oracle-instantclient11.2-sqlplus-################################# [100%]
[root@myhost tools]# ll /usr/lib/oracle/11.2/client64
安装完成后,自动生成客户端所在目录/usr/lib/oracle/11.2/client64,其下bin、lib目录分别存储可执行文件和对应的连接库。
[root@myhost tools]# ll /usr/lib/oracle/11.2/client64
总用量 4
drwxr-xr-x 2 root root 45 4月 15 14:22 bin
drwxr-xr-x 2 root root 4096 4月 15 14:22 lib
七、配置服务端连接地址、端口、实例名称
[root@myhost tools]# cd /usr/lib/oracle/11.2/client64
[root@myhost client64]# vi /usr/lib/oracle/11.2/client64/tnsnames.ora
[root@myhost client64]# cat /usr/lib/oracle/11.2/client64/tnsnames.ora
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle服务端地址)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 实例名称)
)
)
八、配置环境变量
编辑root用户的环境变量配置文件 /root/.bash_profile
[root@myhost client64]# vi /root/.bash_profile
[root@myhost client64]# tail -10 /root/.bash_profile
#ORACLE客户端环境变量:
export ORACLE_CLINET_HOME=/usr/lib/oracle/11.2/client64
export TNS_ADMIN=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
#sqlplus命令所在的路径:
export ORABIN=/usr/lib/oracle/11.2/client64/bin
PATH=$PATH:$ORABIN
export PATH
###使配置的环境变量生效
[root@myhost client64]# source /root/.bash_profile
九、登录测试
以上配置完成,可以用sqlplus命令按对应用户名密码连接远程的oracle数据库,读取表了。
[root@myhost client64]# sqlplus username/"password"@"orcl"
如果 Oracle 客户端提示:client host name is not set,请在 /etc/hosts 最后一行加上以下内容
127.0.1.1 此主机的主机名
十、linux其他系统用户下操作连接oracle客户端
上面的安装如果不想用root 用户操作sqlplus来连接 远端Oracle Server,可以创建任意一个普通用户比如developer,用户创建完成后,我们把安装oracle客户端时生成目录/usr/lib/oracle/11.2/client64 更改属主和属组。
- 创建新的普通用户。
[root@myhost client64]# useradd developer
[root@myhost client64]# id developer
uid=1002(developer) gid=1002(developer) 组=1002(developer)
- 更改 oracle客户端时生成目录/usr/lib/oracle/11.2/client64目录的属主和属组。
[root@myhost client64]# chown -R developer:developer /usr/lib/oracle/11.2/client64
[root@myhost client64]# cd ../
[root@myhost 11.2]# ll
总用量 0
drwxr-xr-x 4 developer developer 45 4月 15 15:07 client64
[root@myhost client64]# cd client64
[root@myhost client64]# ll /usr/lib/oracle/11.2/client64
总用量 8
drwxr-xr-x 2 developer developer 45 4月 15 14:22 bin
drwxr-xr-x 2 developer developer 4096 4月 15 14:22 lib
-rw-r--r-- 1 developer developer 178 4月 15 15:07 tnsnames.ora
- 给普通用户配置oracle客户端环境变量,并使环境变量生效。
编辑developer 用户的环境变量配置文件 /home/developer/.bash_profile,内容和前面root用户设置oracle客户端环境变量一样。
[root@myhost client64]# vi /home/developer/.bash_profile
[root@myhost client64]# tail -10 /home/developer/.bash_profile
#ORACLE客户端环境变量:
export ORACLE_CLINET_HOME=/usr/lib/oracle/11.2/client64
export TNS_ADMIN=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
#sqlplus命令所在的路径:
export ORABIN=/usr/lib/oracle/11.2/client64/bin
PATH=$PATH:$ORABIN
export PATH
###使配置的环境变量生效
[root@myhost client64]# source /home/developer/.bash_profile
- 切换到普通用户并测试
[root@myhost 11.2]# su - developer
[developer@myhost ~]$ whoami
developer
[developer@myhost ~]$ sqlplus username/"password"@"orcl"
十一、拓展(sqlplus命令的使用)
- (1)直接使用:
格式:
sqlplus username/"passwd"@//IP地址:端口号/SID or SERVICE_NAME
sqlplus username/"passwd"@IP地址:端口号/SID or SERVICE_NAME
示例:
sqlplus username/"password"@//xx.xx.xx.xx:1521/orcl
sqlplus username/"password"@xx.xx.xx.xx:1521/orcl
- (2)使用别名:
先在/usr/lib/oracle/11.2/client64下 建立一个tnsnames.ora文件,里面配置服务端连接地址、端口、实例名称:
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle服务端地址)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 实例名称)
)
)
格式:
sqlplus username/"passwd"@SID or SERVICE_NAME
示例:
sqlplus username/"password"@orcl
注意:密码中包含特殊字符时须要用引号。