本节包含用于创建 Oracle 数据库以及配置数据库与 Zabbix server、proxy 和前端之间连接的说明。
自 Zabbix 7.0 起,对 Oracle DB 的支持已被弃用。
我们假设存在一个 zabbix 数据库用户,其密码为 password,并且该用户有权限访问位于 主机 Oracle 数据库服务器上的 ORCL 服务中的 create 数据库 objects。Zabbix 需要使用 Unicode 数据库字符集和 UTF8
国家字符集。请检查当前设置:
sqlplus> select parameter,value from v$nls_parameters where parameter='NLS_CHARACTERSET' or parameter='NLS_NCHAR_CHARACTERSET';
接下来准备数据库:
cd /path/to/zabbix-sources/database/oracle
sqlplus zabbix/password@oracle_host/ORCL
sqlplus> @schema.sql
# 如果你正在为 Zabbix proxy 创建数据库,请在此处停止
sqlplus> @images.sql
sqlplus> @data.sql
为了获得最佳性能,请将初始化参数 CURSOR_SHARING 设置为 FORCE。
Zabbix 支持两种类型的连接标识符(连接方法):
Zabbix server 和 Zabbix proxy 的连接配置参数 可以在配置文件中进行设置。对于服务器和 proxy,重要的参数包括 DBHost、DBUser、DBName 和 DBPassword。前端同样需要关注这些参数:$DB["SERVER"]、 $DB["PORT"]、$DB["DATABASE"]、$DB["USER"]、 $DB["PASSWORD"]。
Zabbix 使用以下连接 string 语法:
<connect_identifier> 可以以“网络服务名称”或“简易连接”的形式指定。
Easy Connect 使用以下参数连接到数据库:
示例
数据库参数在 server 或 proxy 配置中设置 file (zabbix_server.conf 和 zabbix_proxy.conf):
连接 string 用于 Zabbix 建立连接:
在安装 Zabbix 前端时,设置相应的参数。 配置数据库连接步骤的设置向导:
或者,这些参数也可以在前端配置中进行设置 file(zabbix.conf.php):
`$DB["TYPE"] = 'oracle数据库';`
`$DB["SERVER"]` = 'localhost';
`$DB["PORT"] = '1521';`
`$DB["DATABASE"]` 的值设置为 `'ORCL'`。
`$DB["USER"]` = 'myusername';
$DB["PASSWORD"] = 'mypassword';
可以通过使用网络服务名称(net service name)连接到Oracle。
<网络服务名称> 是解析为连接描述符的服务的简单名称。
为了使用服务名称创建连接,必须在数据库服务器和客户端系统上的tnsnames.ora file 中定义此服务名称。确保连接成功的最简单方法是将tnsnames.ora file 的位置定义在TNS_ADMIN环境变量中。tnsnames.ora file 的默认位置是:
一个简单的tnsnames.ora file 示例:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(主机 = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
要为“网络服务名称”连接方法设置配置参数,请使用以下选项之一:
{=html}
<!-- -->
在第二种情况下,必须设置TWO_TASK环境变量。它指定默认的远程Oracle服务(服务名称)。当定义此变量时,连接器通过使用接受连接请求的Oracle监听器连接到指定的数据库。此变量仅适用于Linux和UNIX。对于Microsoft Windows,请使用LOCAL环境变量。
示例
使用设置为ORCL的网络服务名称和默认端口连接到数据库。在server 或 proxy配置file(zabbix_server.conf和zabbix_proxy.conf)中设置的数据库参数:
在Zabbix前端安装期间,在安装向导的“配置数据库连接”步骤中设置相应的参数:
或者,可以在前端配置file(zabbix.conf.php)中设置这些参数:
$DB["TYPE"] = 'oracle数据库';
$DB["SERVER"] = '';
$DB["PORT"] = '0';
$DB["DATABASE"] = 'ORCL';
$DB["USER"] = 'myusername';
$DB["PASSWORD"] = 'mypassword';
Zabbix使用的连接string以建立连接:
为提升性能,您可以将字段类型从 nclob 转换为 nvarchar2,请参见 oracle-配置同步缓慢。