Z投稿 | 如何通过ODBC对接Oracle获取相关数据?
sinye56 2024-09-16 14:32 11 浏览 0 评论
目录
1. 什么是ODBC及其主要功能
2. 安装Oracle-instantclient
3. 配置SQLPlus连接
4. 配置Zabbix监控项
1.什么是ODBC
ODBC数据源全称是开放数据库互连(Open Database Connectivity),在微软公司开放的数据库结构中的一部分,其实是一个应用程序的接口,主要用于提供数据库的编写应用程序的能力。因为是微软公司发布的软件,ODBC也提供了SQL语句的支持,用户可以通过ODBC提供的API接口来使用和调度ODBC驱动程序,然后ODBC驱动程序通过SQL语言与数据库管理系统进行联系。
ODBC数据源在每台计算机中基本都存在,以WIN10为例,打开控制面板—系统工具—数据源 (ODBC),很见到可以找到。双击打开ODBC数据源管理器,该管理器主要用于配置、添加、删除各种不同的数据源,ODBC数据源对此专门进行了简洁化,可以让用户更加方便的进行数据源的配置。
ODBC数据源管理器的主要功能如下:
1. 用户DSN:ODBC用户数据源存储了如何与指定数据提供者连接的信息。用户数据源只对当前的用户可见,而且只能应用在本机上。
2. 系统DSN:ODBC系统数据源存储了如何与指定数据提供者连接的信息。系统数据源对当前机器上的所有用户可见。
3. 文件DSN:ODBC文件数据源允许用户连接数据提供者。文件DSN可以由安装了相同驱动程序的用户共享。
4. 驱动程序:ODBC驱动程序允许那些支持ODBC的程序通过ODBC数据源获取信息。如果安装新的驱动程序,要使用其安装程序。
5. 跟踪:ODBC跟踪允许创建调用ODBC驱动程序的日志,以供技术人员查看;也可以辅助调试应用程序。Visual Studio跟踪启动Microsoft Visual Studio的ODBC跟踪。
6. 连接池:连接池允许应用程序重新打开连接句柄,此操作将往返过程存入服务器。
以上是ODBC数据源管理器的主要功能,用户也可以通过ODBC数据源管理器删除原有的DNS,或者对以前配置的数据源进行修改,操作起来也很简单快捷。今天介绍的是Zabbix如何通过ODBC对接Oracle获取相关数据。
Zabbix官方文档请查看链接:
https://www.zabbix.com/documentation/5.0/manual/config/items/itemtypes/odbc_checks
2.安装Oracle-instantclient
Instant Client Downloads for Linux x86-64 (64-bit)
[下载地址](https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html)。
我这边的Oracle数据库环境是Oracle11GR2 v11.2.0.4;首先去Oracle的官方网站下载最新的Oracle客户端。并在Zabbix主机上进行安装:
# 我们先把需要用到的四个rpm离线包下载到本地
mkdir -p oracle
cd oracle
wget https://download.oracle.com/otn_software/linux/instantclient/199000/oracle-instantclient19.9-basic-19.9.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/199000/oracle-instantclient19.9-sqlplus-19.9.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/199000/oracle-instantclient19.9-devel-19.9.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/199000/oracle-instantclient19.9-odbc-19.9.0.0.0-1.x86_64.rpm
# 在安装客户端之前我们还需要在zabbix上安装unixODBC和unixODBC-devel(这两个包我们直接在线安装即可)
yum -y install unixODBC unixODBC-devel
# 安装完成之后我们直接通过下面的命令安装 oracle-instantclient
yum localinstall oracle-instantclient19.9-*
# oracle-instantclient的安装位置如下
/usr/lib/oracle/19.9/client64
/usr/share/oracle/19.9/client64
/usr/include/oracle/19.9/client64
3. 配置SQLPlus连接
在设置环境变量之前,需要在/usr/lib/oracle/19.9/client64下创建 network/admin 文件夹,用来配置 tnsnames.ora :
# 创建 network/admin 文件夹
mkdir /usr/lib/oracle/19.9/client64/network/admin -p
# 配置 tnsnames.ora 文件
Oracle=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.200.110)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 数据库SID)
)
)
注:这里也可以去创建 listener.ora和sqlnet.ora 配置文件。创建 sqlnet.ora 作用是配置解析顺序, name/password@xxxxx xxxx会先去tnsnames寻找这个名字,没有的话会解析为IP NAME_DIRECTORY_PATH=(TNSNAMES,EZCONNECT) 。感兴趣的小伙伴可以自定测试,这里不再演示。
还需要配置环境变量。环境变量必须配置,否则会造成 [01000] unixODBCCan’t open lib ‘/usr/lib64/lxxxxx.so’ : file not found (执行一次即可)
export ORACLE_HOME=/usr/lib/oracle/19.9/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
配置需要的类库
chmod +x /usr/lib/oracle/19.9/client64/lib/libsqora.so.19.1
cd /usr/lib64/
ln -s libodbcinst.so.2.0.0 libodbcinst.so.1
添加Oracle驱动
# Example driver definitions
# vi /etc/odbcinst.ini
[Oracle]
Description = Oracle ODBC driver for Oracle 11g
Driver = /usr/lib/oracle/19.9/client64/lib/libsqora.so.19.1
添加Oracle数据源
# vi /etc/odbc.ini
# 配置示例
[DSN名称] 将在zabbix item key中使用
Driver = oracle tnsnames.ini 配置的驱动名称
ServerName = ip:port/sid ip:port/sid
UserID = 用户名 用户名
Password = 密码 密码
# 具体配置
[Oracle]
Driver = Oracle
ServerName = 172.16.200.241:1521/数据库SID
UserID = XXX
Password = XXX
ISQL测试
isql -v Oracle
# 检测是否可连接及中间如遇到报错的错误信息(这里的Oracle要和DSN名称一致)
[root@ZabbixServer]# isql -v Oracle
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
SQLPlus测试连接
# sqlplus 用户名/密码@tnsnames.ora中配置的连接名称
[root@ZabbixServer ~]# sqlplus 用户名/用户密码@DSN名称
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Dec 6 11:34:11 2020
Version 19.9.0.0.0
Copyright (c) 1982, 2020, Oracle. All rights reserved.
???:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
4. 配置Zabbix监控项
测试正常之后就可以去Zabbix里面添加数据库架监控项,需要填入键值、用户名称、密码、具体的SQL查询语句、更新时间;信息类型修改为文本。具体配置信息如下:
配置完成以后我们可以点击下方的测试按钮,如果在结果里能获取到Result converted to 文本 OPEN 信息就代表成功了;可以去检测-最新数据里面看到已经成功拿到的数据。
相关推荐
- 程序员:JDK的安装与配置(完整版)_jdk的安装方法
-
对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...
- Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置
-
一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...
- 麒麟系统安装JAVA JDK教程_麒麟系统配置jdk
-
检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...
- 学习笔记-Linux JDK - 安装&配置
-
前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 测试员必备:Linux下安装JDK 1.8你必须知道的那些事
-
1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...
- Linux 下安装JDK17_linux 安装jdk1.8 yum
-
一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...
- 在Ubuntu系统中安装JDK 17并配置环境变量教程
-
在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...
- 如何在 Linux 上安装 Java_linux安装java的步骤
-
在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...
- Windows和Linux环境下的JDK安装教程
-
JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...
- linux安装jdk_linux安装jdk软连接
-
JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...
- linux安装jdk,全局配置,不同用户不同jdk
-
jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...
- 运维大神教你在linux下安装jdk8_linux安装jdk1.7
-
1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...
- window和linux安装JDK1.8_linux 安装jdk1.8.tar
-
Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...
- 最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?
-
默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle忘记用户名密码 (59)
- oracle11gr2安装教程 (55)
- mybatis调用oracle存储过程 (67)
- oracle spool的用法 (57)
- oracle asm 磁盘管理 (67)
- 前端 设计模式 (64)
- 前端面试vue (56)
- linux格式化 (55)
- linux图形界面 (62)
- linux文件压缩 (75)
- Linux设置权限 (53)
- linux服务器配置 (62)
- mysql安装linux (71)
- linux启动命令 (59)
- 查看linux磁盘 (72)
- linux用户组 (74)
- linux多线程 (70)
- linux设备驱动 (53)
- linux自启动 (59)
- linux网络命令 (55)
- linux传文件 (60)
- linux打包文件 (58)
- linux查看数据库 (61)
- linux获取ip (64)
- linux进程通信 (63)