14 Configurazione del database Oracle

Panoramica

Questa sezione contiene istruzioni per creare un database Oracle e configurare le connessioni tra il database e il server Zabbix, il proxy e il frontend.

Il supporto per Oracle DB è deprecato a partire da Zabbix 7.0.

Creazione del database

Si presume che esista un utente del database zabbix con password password e che disponga dei permessi per creare oggetti del database nel servizio ORCL situato sul server di database Oracle host. Zabbix richiede un set di caratteri Unicode per il database e un set di caratteri nazionali UTF8. Verificare le impostazioni correnti:

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

Ora preparare il database:

cd /path/to/zabbix-sources/database/oracle
sqlplus zabbix/password@oracle_host/ORCL
sqlplus> @schema.sql
# fermarsi qui se si sta creando il database per Zabbix proxy
sqlplus> @images.sql
sqlplus> @data.sql

Impostare il parametro di inizializzazione CURSOR_SHARING=FORCE per ottenere le migliori prestazioni.

Configurazione della connessione

Zabbix supporta due tipi di identificatori di connessione (metodi di connessione):

  • Easy Connect
  • Net Service Name

I parametri di configurazione della connessione per server Zabbix e proxy Zabbix possono essere impostati nei file di configurazione. I parametri importanti per il server e il proxy sono DBHost, DBUser, DBName e DBPassword. Gli stessi parametri sono importanti per il frontend: $DB["SERVER"], $DB["PORT"], $DB["DATABASE"], $DB["USER"], $DB["PASSWORD"].

Zabbix usa la seguente sintassi della stringa di connessione:

{DBUser/DBPassword[@<connect_identifier>]} 

<connect_identifier> può essere specificato sia nel formato "Net Service Name" sia in quello "Easy Connect".

@[[//]Host[:Port]/<service_name> | <net_service_name>]
Easy Connect

Easy Connect utilizza i seguenti parametri per connettersi al database:

  • Host - il nome host o l'indirizzo IP del computer del server database (parametro DBHost nel file di configurazione).
  • Port - la porta in ascolto sul server database (parametro DBPort nel file di configurazione; se non impostata, verrà utilizzata la porta predefinita 1521).
  • <service_name> - il nome del servizio del database a cui si desidera accedere (parametro DBName nel file di configurazione).

Esempio

Parametri del database impostati nel file di configurazione del server o del proxy (zabbix_server.conf e zabbix_proxy.conf):

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

Stringa di connessione utilizzata da Zabbix per stabilire la connessione:

DBUser/DBPassword@DBHost:DBPort/DBName

Durante l'installazione di Zabbix frontend, impostare i parametri corrispondenti nel passaggio Configure DB connection della procedura guidata di configurazione:

  • Database host: localhost
  • Database port: 1521
  • Database name: ORCL
  • User: myusername
  • Password: mypassword

In alternativa, questi parametri possono essere impostati nel file di configurazione del frontend (zabbix.conf.php):

$DB["TYPE"]                     = 'ORACLE';
$DB["SERVER"]                   = 'localhost';
$DB["PORT"]             = '1521';
$DB["DATABASE"]                 = 'ORCL';
$DB["USER"]                     = 'myusername';
$DB["PASSWORD"]                 = 'mypassword';
Nome del servizio Net

È possibile connettersi a Oracle utilizzando il net service name.

<net_service_name> è un nome semplice per un servizio che viene risolto in un connect descriptor.

Per utilizzare il nome del servizio per creare una connessione, questo nome di servizio deve essere definito nel file tnsnames.ora presente sia sul database server sia sui sistemi client. Il modo più semplice per assicurarsi che la connessione abbia successo è definire la posizione del file tnsnames.ora nella variabile di ambiente TNS_ADMIN. La posizione predefinita del file tnsnames.ora è:

$ORACLE_HOME/network/admin/

Un semplice esempio di file tnsnames.ora:

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

Per impostare i parametri di configurazione per il metodo di connessione "Net Service Name", utilizzare una delle seguenti opzioni:

  • Impostare un parametro DBHost vuoto e impostare DBName come di consueto:
<!-- -->
DBHost=
DBName=ORCL
  • Impostare entrambi i parametri e lasciarli entrambi vuoti:
<!-- -->
DBHost=
DBName=

Nel secondo caso, la variabile di ambiente TWO_TASK deve essere impostata. Essa specifica il servizio Oracle remoto predefinito (service name). Quando questa variabile è definita, il connettore si connette al database specificato utilizzando un listener Oracle che accetta le richieste di connessione. Questa variabile è destinata all'uso solo su Linux e UNIX. Utilizzare la variabile di ambiente LOCAL per Microsoft Windows.

Esempio

Connessione a un database utilizzando Net Service Name impostato come ORCL e la porta predefinita. Parametri del database impostati nel file di configurazione del server o proxy (zabbix_server.conf e zabbix_proxy.conf):

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

Durante l'installazione di Zabbix frontend, impostare i parametri corrispondenti nel passaggio Configure DB connection della procedura guidata di configurazione:

  • Database host:
  • Database port: 0
  • Database name: ORCL
  • User: myusername
  • Password: mypassword

In alternativa, questi parametri possono essere impostati nel file di configurazione del frontend (zabbix.conf.php):

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

Stringa di connessione utilizzata da Zabbix per stabilire la connessione:

DBUser/DBPassword@ORCL

Problemi noti

Per migliorare le prestazioni, è possibile convertire i tipi di campo da nclob a nvarchar2, vedere problemi noti.