Linux下配置sqlplus访问oracle数据库
写在前面
因为监控上有监控oracle,但是老是获取不到值,不清楚是访问过程中有什么问题,所以想着在监控端配置一个可以访问oracle的工具,因为只是需要简单的登录、查询,所以装个sqlplus就可以了。
本文大部分是转述网上找到的教程,文后会贴原文的链接。
配置过程
下载oracle工具包
这里用到两个软件包:
oracle-instantclient-basic
oracle-instantclient-sqlplus
下载页我贴一下:Oracle Instant Client Downloads for Linux x86-64 (64-bit)
这里我提供一下我用的版本,适用于oracle11.2.0.4:
https://narutoahoo.lanzout.com/b01854j2f 密码:epkn
下载完rpm -ivh 包名
安装就可以了
配置环境变量
可以在当前用户的.bash_profile文件或者/etc/profile文件中添加配置内容,区别是前者只对当前用户生效,后者对所有用户生效。
以.bash_profile为例,打开编辑:vi ~/.bash_profile
写入一下内容:
1 | export ORACLE_HOME=/usr/lib/oracle/11.2/client64 |
这里说明一下,刚刚上面两个包安装完毕后,会创建/usr/lib/oracle/11.2/client64/
目录,这个目录就作为ORACLE_HOME
到环境变量里。(如果是其他版本,把11.2换一下应该就是对应的目录了)
配置完毕后,生效一下配置:source ~/.bash_profile
创建tnsnames.ora
1 | cd /usr/lib/oracle/11.2/client64 |
tnsnames.ora内容如下:
1 | test = |
其中test是自己定义的一个数据库连接的别名,service_name是数据库监听的服务名。
连接测试
sqlplus64 user/password@test
这个sqlplus64是软件安装完在/usr/bin目录下生成的一个软链接,它指向/usr/lib/oracle/11.2/client64/bin/sqlplus
排除sqlplus程序的原因,如果连不上,可到数据库端,查看监听的日志输出,错误会写在里面。监听日志位置可通过lsnrctl status
查看。