14 Configuration de la base de données Oracle
Vue d'ensemble
Cette section contient des instructions pour créer une base de données Oracle et configurer les connexions entre la base de données et le serveur Zabbix, le proxy et l'interface.
La prise en charge d'Oracle DB est obsolète depuis Zabbix 7.0.
Création de la base de données
Nous supposons qu'un utilisateur de base de données zabbix avec le mot de passe password existe
et dispose des autorisations nécessaires pour créer des objets de base de données dans le service ORCL situé
sur le serveur de base de données Oracle host. Zabbix nécessite un jeu de caractères de base de données Unicode
et un jeu de caractères national UTF8. Vérifiez les paramètres actuels :
sqlplus> select parameter,value from v$nls_parameters where parameter='NLS_CHARACTERSET' or parameter='NLS_NCHAR_CHARACTERSET';
Préparez maintenant la base de données :
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
Veuillez définir le paramètre d'initialisation CURSOR_SHARING=FORCE pour obtenir les meilleures performances.
Configuration de la connexion
Zabbix prend en charge deux types d’identifiants de connexion (méthodes de connexion) :
- Easy Connect
- Net Service Name
Les paramètres de configuration de la connexion pour le serveur Zabbix et le proxy Zabbix peuvent être définis dans les fichiers de configuration. Les paramètres importants pour le serveur et le proxy sont DBHost, DBUser, DBName et DBPassword. Les mêmes paramètres sont importants pour l’interface : $DB["SERVER"], $DB["PORT"], $DB["DATABASE"], $DB["USER"], $DB["PASSWORD"].
Zabbix utilise la syntaxe de chaîne de connexion suivante :
{DBUser/DBPassword[@<connect_identifier>]}
<connect_identifier> peut être spécifié soit sous la forme "Net Service Name", soit sous la forme "Easy Connect".
@[[//]Host[:Port]/<service_name> | <net_service_name>]
Easy Connect
Easy Connect utilise les paramètres suivants pour se connecter à la base de données :
- Host - le nom d'hôte ou l'adresse IP de l'ordinateur du serveur de base de données (paramètre DBHost dans le fichier de configuration).
- Port - le port d'écoute sur le serveur de base de données (paramètre DBPort dans le fichier de configuration ; s'il n'est pas défini, le port par défaut 1521 sera utilisé).
- <service_name> - le nom du service de la base de données à laquelle vous souhaitez accéder (paramètre DBName dans le fichier de configuration).
Exemple
Paramètres de base de données définis dans le fichier de configuration du serveur ou du proxy (zabbix_server.conf et zabbix_proxy.conf) :
DBHost=localhost
DBPort=1521
DBUser=myusername
DBName=ORCL
DBPassword=mypassword
Chaîne de connexion utilisée par Zabbix pour établir la connexion :
DBUser/DBPassword@DBHost:DBPort/DBName
Lors de l'installation de l'interface Zabbix, définissez les paramètres correspondants à l'étape Configurer la connexion à la base de données de l'assistant d'installation :
- Hôte de la base de données : localhost
- Port de la base de données : 1521
- Nom de la base de données : ORCL
- Utilisateur : myusername
- Mot de passe : mypassword

Sinon, ces paramètres peuvent être définis dans le fichier de configuration de l'interface (zabbix.conf.php) :
$DB["TYPE"] = 'ORACLE';
$DB["SERVER"] = 'localhost';
$DB["PORT"] = '1521';
$DB["DATABASE"] = 'ORCL';
$DB["USER"] = 'myusername';
$DB["PASSWORD"] = 'mypassword';
Nom de service réseau
Il est possible de se connecter à Oracle en utilisant un nom de service réseau.
<net_service_name> est un nom simple pour un service qui se résout en un descripteur de connexion.
Afin d'utiliser le nom de service pour créer une connexion, ce nom de service doit être défini dans le fichier tnsnames.ora situé à la fois sur le serveur de base de données et sur les systèmes clients. Le moyen le plus simple de s'assurer que la connexion réussira est de définir l'emplacement du fichier tnsnames.ora dans la variable d'environnement TNS_ADMIN. L'emplacement par défaut du fichier tnsnames.ora est :
$ORACLE_HOME/network/admin/
Exemple simple de fichier tnsnames.ora :
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
Pour définir les paramètres de configuration de la méthode de connexion "Net Service Name", utilisez l'une des options suivantes :
- Définissez un paramètre DBHost vide et définissez DBName comme d'habitude :
<!-- -->
DBHost=
DBName=ORCL
- Définissez les deux paramètres et laissez-les tous les deux vides :
<!-- -->
DBHost=
DBName=
Dans le second cas, la variable d'environnement TWO_TASK doit être définie. Elle spécifie le service Oracle distant par défaut (nom de service). Lorsque cette variable est définie, le connecteur se connecte à la base de données spécifiée en utilisant un écouteur Oracle qui accepte les demandes de connexion. Cette variable est destinée à être utilisée uniquement sous Linux et UNIX. Utilisez la variable d'environnement LOCAL pour Microsoft Windows.
Exemple
Connexion à une base de données en utilisant Net Service Name défini sur ORCL et le port par défaut. Paramètres de base de données définis dans le fichier de configuration du serveur ou du proxy (zabbix_server.conf et zabbix_proxy.conf) :
DBHost=
#DBPort=
DBUser=myusername
DBName=ORCL
DBPassword=mypassword
Lors de l'installation de l'interface Zabbix, définissez les paramètres correspondants à l'étape Configurer la connexion à la base de données de l'assistant d'installation :
- Hôte de la base de données :
- Port de la base de données : 0
- Nom de la base de données : ORCL
- Utilisateur : myusername
- Mot de passe : mypassword

Sinon, ces paramètres peuvent être définis dans le fichier de configuration de l'interface (zabbix.conf.php) :
$DB["TYPE"] = 'ORACLE';
$DB["SERVER"] = '';
$DB["PORT"] = '0';
$DB["DATABASE"] = 'ORCL';
$DB["USER"] = 'myusername';
$DB["PASSWORD"] = 'mypassword';
Chaîne de connexion utilisée par Zabbix pour établir la connexion :
DBUser/DBPassword@ORCL
Problèmes connus
Pour améliorer les performances, vous pouvez convertir les types de champ de nclob en nvarchar2 ; voir problèmes connus.