12 Oracle-database instellen

Overzicht

Dit gedeelte bevat instructies voor het maken van een Oracle-database en: verbindingen configureren tussen de database en Zabbix-server, proxy, en front-end.

Database creatie

We gaan ervan uit dat een zabbix databasegebruiker met wachtwoord wachtwoord bestaat en toestemming heeft om databaseobjecten te maken in de ORCL-service op de host Oracle-databaseserver. Zabbix vereist een Unicode-databasekarakterset en een UTF8 nationale karakterset. Controleer de huidige instellingen:

sqlplus> select parameter,value from v$nls_parameters where parameter='NLS_CHARACTERSET' or parameter='NLS_NCHAR_CHARACTERSET';

Bereid nu de database voor:

cd /pad/naar/zabbix-bronnen/database/oracle
       sqlplus zabbix/wachtwoord@oracle_host/ORCL
       sqlplus> @schema.sql
       # stop hier als je een database voor Zabbix-proxy aanmaakt
       sqlplus> @images.sql
       sqlplus> @data.sql

Stel de initialisatieparameter CURSOR_SHARING=FORCE in voor de beste prestaties.

Verbinding tot stand gebracht

Zabbix ondersteunt twee soorten verbindings-ID's (verbindingsmethoden):

  • Eenvoudig verbinden
  • Netservicenaam

Verbindingsconfiguratieparameters voor Zabbix-server en Zabbix-proxy kan worden ingesteld in de configuratiebestanden. Belangrijke parameters voor de server en proxy zijn DBHost, DBUser, DBName en DBPassword. De dezelfde parameters zijn belangrijk voor de frontend: $DB["SERVER"], $DB["POORT"], $DB["DATABASE"], $DB["USER"], $DB["WACHTWOORD"].

Zabbix gebruikt de volgende syntaxis van de verbindingsreeks:

{DBUser/DBPassword[@<connect_identifier>]}

<connect_identifier> kan worden opgegeven in de vorm van "Net Servicenaam" of "Easy Connect".

@[[//]Host[:Poort]/<service_name> | <net_service_name>]

Eenvoudig verbinden

Easy Connect gebruikt de volgende parameters om verbinding te maken met de database:

  • Host - de hostnaam of het IP-adres van de databaseservercomputer (DBHost-parameter in het configuratiebestand).
  • Poort - de luisterpoort op de databaseserver (DBPort-parameter in het configuratiebestand; indien niet ingesteld, zal de standaard 1521-poort zijn: gebruikt).
  • <service_name> - de servicenaam van de database die u wilt access (DBName-parameter in het configuratiebestand).

Voorbeeld:

Databaseparameters ingesteld in het server- of proxyconfiguratiebestand (zabbix_server.conf en zabbix_proxy.conf):

DBHost=lokale host
       DBPort=1521
       DBUser=mijngebruikersnaam
       DBName=ORCL
       DBPassword=mijnwachtwoord

Verbindingsreeks gebruikt door Zabbix om verbinding tot stand te brengen:

DBUser/DBPassword@DBHost:DBPort/DBName

Stel tijdens Zabbix frontend-installatie de bijbehorende parameters in de stap DB-verbinding configureren van de installatiewizard:

  • Databasehost: localhost
  • Databasepoort: 1521
  • Databasenaam: ORCL
  • Gebruiker: mijngebruikersnaam
  • Wachtwoord: mijnwachtwoord

Als alternatief kunnen deze parameters worden ingesteld in de frontend-configuratie bestand (zabbix.conf.php):

$DB["TYPE"] = 'ORAKLE';
       $DB["SERVER"] = 'localhost';
       $DB["POORT"] = '1521';
       $DB["DATABASE"] = 'ORCL';
       $DB["USER"] = 'mijngebruikersnaam';
       $DB["PASSWORD"] = 'mijnwachtwoord';

Net service naam

Sinds Zabbix 5.4.0 is het mogelijk om verbinding te maken met Oracle door gebruik te maken van een net service naam.

<net_service_name> is een eenvoudige naam voor een service die oplost naar een connect descriptor.

Om de service naam te gebruiken voor het maken van een verbinding, moet deze service naam worden gedefinieerd in het tnsnames.ora-bestand dat zich zowel op de databaseserver als op de clientsystemen bevindt. De eenvoudigste manier om ervoor te zorgen dat de verbinding slaagt, is door de locatie van het tnsnames.ora-bestand te definiëren in de TNS_ADMIN omgevingsvariabele. De standaardlocatie van het tnsnames.ora-bestand is:

$ORACLE_HOME/network/admin/

Een eenvoudig voorbeeld van een tnsnames.ora-bestand:

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

Om configuratieparameters in te stellen voor de "Net Service Name" verbindingsmethode, gebruik een van de volgende opties:

  • Stel een lege parameter DBHost in en stel DBName in zoals gewoonlijk:
DBHost=
       DBName=ORCL
  • Stel beide parameters in en laat beide leeg:
DBHost=
       DBName=

In het tweede geval moet de TWO_TASK omgevingsvariabele worden ingesteld. Het specificeert de standaard externe Oracle-service (service naam). Wanneer deze variabele is gedefinieerd, maakt de connector verbinding met de gespecificeerde database door gebruik te maken van een Oracle-listener die verbindingsverzoeken accepteert. Deze variabele is alleen voor gebruik op Linux en UNIX. Gebruik de LOCAL omgevingsvariabele voor Microsoft Windows.

Voorbeeld:

Maak verbinding met een database met behulp van de Net Service Name ingesteld als ORCL en de standaard poort. Databaseparameters ingesteld in het configuratiebestand van de server of proxy (zabbix_server.conf en zabbix_proxy.conf):

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

Tijdens de installatie van de Zabbix frontend stel je de overeenkomstige parameters in bij de Configure DB connection stap van de installatiewizard:

  • Databasehost:
  • Databasepoort: 0
  • Databasenaam: ORCL
  • Gebruiker: myusername
  • Wachtwoord: mypassword

Als alternatief kunnen deze parameters worden ingesteld in het frontend configuratiebestand (zabbix.conf.php):

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

Verbindingsreeks die door Zabbix wordt gebruikt om verbinding te maken:

DBUser/DBPassword@ORCL

Bekende problemen

Om de prestaties te verbeteren, kunt u de veldtypen converteren van nclob naar nvarchar2, zie bekende problemen.