13 Oracle 数据库设置

概述

本节包含创建Oracle数据库以及配置数据库与Zabbix server、proxy和前端之间连接的说明。

数据库创建

我们假设已存在一个密码为passwordzabbix数据库用户 且该用户对位于主机 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
       # stop here if you are creating database for Zabbix proxy
       sqlplus> @images.sql
       sqlplus> @data.sql

为获得最佳性能,请将初始化参数 CURSOR_SHARING设置为FORCE。

连接建立

Zabbix支持两种类型的连接标识符(连接方式):

  • Easy Connect
  • Net Service Name

Zabbix server和Zabbix proxy的连接配置参数可在配置文件中设置。服务器和proxy的重要参数包括DBHostDBUserDBNameDBPassword。前端同样重要的参数有:$DB["SERVER"]$DB["PORT"]$DB["DATABASE"]$DB["USER"]$DB["PASSWORD"]

Zabbix使用以下连接string语法:

{DBUser/DBPassword[@<connect_identifier>]} 

<connect_identifier>可以指定为"Net Service Name"或"Easy Connect"格式。

@[[//]主机[:Port]/<service_name> | <net_service_name>]

Easy Connect

Easy Connect 使用以下参数连接到数据库:

  • 主机 - 数据库服务器计算机的主机名称或IP地址 (配置中的DBHost参数file)。

  • Port - 数据库服务器上的监听端口(DBPort参数) 在配置 file 中;如果未设置,将使用默认的1521端口 已使用).

  • <service_name> - 您想要连接的数据库服务名称

    access (DBName parameter in the configuration file).

示例:

在server 或 proxy配置file中设置的数据库参数 (zabbix_server.conf 和 zabbix_proxy.conf):

DBHost=localhost
       DBPort=1521
       DBUser=myusername
       DBName=ORCL
       DBPassword=mypassword

Zabbix用于建立连接的连接string

DBUser/DBPassword@DBHost:DBPort/DBName

在Zabbix前端安装过程中,设置相应的参数 安装向导中的配置数据库连接步骤:

  • 数据库 主机: localhost
  • 数据库端口: 1521
  • 数据库名称: ORCL
  • 用户: myusername
  • Password: mypassword

或者,这些参数可以在前端配置中设置 file (zabbix.conf.php):

$DB["TYPE"] = 'oracle数据库'; $DB["SERVER"] = 'localhost'; $DB["PORT"] = '1521'; $DB["DATABASE"] = 'ORCL'; $DB["USER"] = 'myusername'; $DB["PASSWORD"] = 'mypassword';

网络服务名称

自Zabbix 5.4.0起,可通过net方式连接Oracle数据库 服务名称

<net_service_name> 是一个用于解析服务的简单名称 到一个连接描述符。

为了使用服务名称创建连接,该服务 必须在位于两端的tnsnames.ora file中定义名称 数据库服务器与客户端系统。确保的最简单方法 连接成功的关键在于定义位置 tnsnames.ora file 位于 TNS_ADMIN 环境变量中。默认 tnsnames.ora file 的位置是:

$ORACLE_HOME/network/admin/

一个简单的tnsnames.ora file示例:

ORCL =
         (DESCRIPTION =
           (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
           (CONNECT_DATA =
             (SERVER = DEDICATED)
             (SERVICE_NAME = ORCL)
           )
         )

为"Net Service Name"连接设置配置参数 方法,使用以下选项之一:

  • 设置一个空参数DBHost并正常设置DBName:

DBHost= DBName=ORCL

  • 将两个参数都设置为空值并保留为空:

DBHost= DBName= 数据库名称=

在第二种情况下,必须设置TWO_TASK环境变量。 指定默认的远程Oracle服务(服务名称)。当此 变量已定义时,连接器将连接到指定的数据库 使用接受连接请求的Oracle监听器。该变量 仅适用于Linux和UNIX系统。请使用LOCAL环境变量 适用于Microsoft Windows。

示例:

使用Net Service Name设置为ORCL并默认连接到数据库 port. 在server 或 proxy配置file中设置的数据库参数 (zabbix_server.conf 和 zabbix_proxy.conf):

DBHost=
       #DBPort=
       DBUser=myusername
       DBName=ORCL
       DBPassword=mypassword

在Zabbix前端安装过程中,设置相应的参数 安装向导中的配置数据库连接步骤:

  • 数据库 主机:
  • 数据库端口: 0
  • 数据库名称: ORCL
  • 用户: myusername
  • 密码: mypassword

或者,这些参数可以在前端配置中设置 file (zabbix.conf.php):

$DB["TYPE"]                     = 'ORACLE';
       $DB["SERVER"]                   = '';
       $DB["PORT"]           = '0';
       $DB["DATABASE"]                 = 'ORCL';
       $DB["USER"]                     = 'myusername';
       $DB["PASSWORD"]                 = 'mypassword';

Zabbix用于建立连接的连接string

数据库用户/数据库密码@ORCL

已知 问题

为提高性能,您可以将字段类型从nclob转换为nvarchar2,参见oracle-配置同步缓慢