14 Oracle-Datenbankeinrichtung
Übersicht
Dieser Abschnitt enthält Anweisungen zum Erstellen einer Oracle-Datenbank und zum Konfigurieren der Verbindungen zwischen der Datenbank und dem Zabbix Server, Proxy und Frontend.
Die Unterstützung für Oracle DB ist seit Zabbix 7.0 veraltet.
Datenbankerstellung
Wir gehen davon aus, dass ein zabbix-Datenbankbenutzer mit dem Kennwort password vorhanden ist
und über Berechtigungen zum Erstellen von Datenbankobjekten im ORCL-Dienst auf dem
host Oracle-Datenbankserver verfügt. Zabbix benötigt einen Unicode-Datenbank-
Zeichensatz und einen nationalen Zeichensatz UTF8. Prüfen Sie die aktuellen
Einstellungen:
sqlplus> select parameter,value from v$nls_parameters where parameter='NLS_CHARACTERSET' or parameter='NLS_NCHAR_CHARACTERSET';
Bereiten Sie nun die Datenbank vor:
cd /path/to/zabbix-sources/database/oracle
sqlplus zabbix/password@oracle_host/ORCL
sqlplus> @schema.sql
# hier anhalten, wenn Sie die Datenbank für einen Zabbix Proxy erstellen
sqlplus> @images.sql
sqlplus> @data.sql
Bitte setzen Sie den Initialisierungsparameter CURSOR_SHARING=FORCE für die beste Leistung.
Verbindungsaufbau
Zabbix unterstützt zwei Arten von Verbindungskennungen (Verbindungsmethoden):
- Easy Connect
- Net Service Name
Die Verbindungs-Konfigurationsparameter für den Zabbix Server und den Zabbix Proxy können in den Konfigurationsdateien festgelegt werden. Wichtige Parameter für den Server und den Proxy sind DBHost, DBUser, DBName und DBPassword. Die gleichen Parameter sind für das Frontend wichtig: $DB["SERVER"], $DB["PORT"], $DB["DATABASE"], $DB["USER"], $DB["PASSWORD"].
Zabbix verwendet die folgende Syntax für Verbindungszeichenfolgen:
{DBUser/DBPassword[@<connect_identifier>]}
<connect_identifier> kann entweder in der Form "Net Service Name" oder "Easy Connect" angegeben werden.
@[[//]Host[:Port]/<service_name> | <net_service_name>]
Easy Connect
Easy Connect verwendet die folgenden Parameter, um eine Verbindung zur Datenbank herzustellen:
- Host - der Hostname oder die IP-Adresse des Datenbankserver-Computers (DBHost-Parameter in der Konfigurationsdatei).
- Port - der Listening-Port auf dem Datenbankserver (DBPort-Parameter in der Konfigurationsdatei; wenn nicht gesetzt, wird standardmäßig Port 1521 verwendet).
- <service_name> - der Name des Datenbankdienstes, auf den Sie zugreifen möchten (DBName-Parameter in der Konfigurationsdatei).
Beispiel
Datenbankparameter, die in der Konfigurationsdatei von Server oder Proxy festgelegt sind (zabbix_server.conf und zabbix_proxy.conf):
DBHost=localhost
DBPort=1521
DBUser=myusername
DBName=ORCL
DBPassword=mypassword
Von Zabbix verwendete Verbindungszeichenfolge zum Herstellen der Verbindung:
DBUser/DBPassword@DBHost:DBPort/DBName
Während der Installation des Zabbix Frontend legen Sie die entsprechenden Parameter im Schritt Datenbankverbindung konfigurieren des Einrichtungsassistenten fest:
- Datenbank-Host: localhost
- Datenbankport: 1521
- Datenbankname: ORCL
- Benutzer: myusername
- Passwort: mypassword

Alternativ können diese Parameter in der Konfigurationsdatei des Frontend (zabbix.conf.php) festgelegt werden:
$DB["TYPE"] = 'ORACLE';
$DB["SERVER"] = 'localhost';
$DB["PORT"] = '1521';
$DB["DATABASE"] = 'ORCL';
$DB["USER"] = 'myusername';
$DB["PASSWORD"] = 'mypassword';
Net Service Name
Es ist möglich, eine Verbindung zu Oracle mithilfe des Net Service Name herzustellen.
<net_service_name> ist ein einfacher Name für einen Dienst, der in einen Connect Descriptor aufgelöst wird.
Um den Dienstnamen zum Erstellen einer Verbindung zu verwenden, muss dieser Dienstname in der Datei tnsnames.ora definiert sein, die sich sowohl auf dem Datenbankserver als auch auf den Client-Systemen befindet. Der einfachste Weg, um sicherzustellen, dass die Verbindung erfolgreich hergestellt wird, besteht darin, den Speicherort der Datei tnsnames.ora in der Umgebungsvariable TNS_ADMIN zu definieren. Der Standardspeicherort der Datei tnsnames.ora ist:
$ORACLE_HOME/network/admin/
Ein einfaches Beispiel für eine tnsnames.ora-Datei:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
Um Konfigurationsparameter für die Verbindungsart "Net Service Name" festzulegen, verwenden Sie eine der folgenden Optionen:
- Setzen Sie den Parameter DBHost leer und setzen Sie DBName wie gewohnt:
<!-- -->
DBHost=
DBName=ORCL
- Setzen Sie beide Parameter und lassen Sie beide leer:
<!-- -->
DBHost=
DBName=
Im zweiten Fall muss die Umgebungsvariable TWO_TASK gesetzt sein. Sie gibt den standardmäßigen entfernten Oracle-Dienst (Service Name) an. Wenn diese Variable definiert ist, verbindet sich der Connector mit der angegebenen Datenbank über einen Oracle Listener, der Verbindungsanforderungen akzeptiert. Diese Variable ist nur für Linux und UNIX vorgesehen. Verwenden Sie die Umgebungsvariable LOCAL für Microsoft Windows.
Beispiel
Verbindung zu einer Datenbank mit Net Service Name, gesetzt auf ORCL, und dem Standardport herstellen. Datenbankparameter, gesetzt in der Server- oder Proxy-Konfigurationsdatei (zabbix_server.conf und zabbix_proxy.conf):
DBHost=
#DBPort=
DBUser=myusername
DBName=ORCL
DBPassword=mypassword
Während der Zabbix Frontend-Installation setzen Sie die entsprechenden Parameter im Schritt Configure DB connection des Einrichtungsassistenten:
- Datenbank-Host:
- Datenbank-Port: 0
- Datenbankname: ORCL
- Benutzer: myusername
- Passwort: mypassword

Alternativ können diese Parameter in der Frontend-Konfigurationsdatei (zabbix.conf.php) gesetzt werden:
$DB["TYPE"] = 'ORACLE';
$DB["SERVER"] = '';
$DB["PORT"] = '0';
$DB["DATABASE"] = 'ORCL';
$DB["USER"] = 'myusername';
$DB["PASSWORD"] = 'mypassword';
Von Zabbix verwendete Verbindungszeichenfolge zum Herstellen der Verbindung:
DBUser/DBPassword@ORCL
Bekannte Probleme
Zur Verbesserung der Leistung können Sie die Feldtypen von nclob in nvarchar2 konvertieren, siehe bekannte Probleme.