14 Konfiguracja bazy danych Oracle

Przegląd

Ta sekcja zawiera instrukcje dotyczące tworzenia bazy danych Oracle oraz konfigurowania połączeń między bazą danych a serwerem Zabbix, proxy i frontendem.

Obsługa Oracle DB jest przestarzała od Zabbix 7.0.

Tworzenie bazy danych

Zakładamy, że istnieje użytkownik bazy danych zabbix z hasłem password i ma on uprawnienia do tworzenia obiektów bazy danych w usłudze ORCL znajdującej się na serwerze bazy danych Oracle host. Zabbix wymaga bazy danych z zestawem znaków Unicode oraz narodowym zestawem znaków UTF8. Sprawdź bieżące ustawienia:

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

Teraz przygotuj bazę danych:

cd /path/to/zabbix-sources/database/oracle
sqlplus zabbix/password@oracle_host/ORCL
sqlplus> @schema.sql
# zatrzymaj się tutaj, jeśli tworzysz bazę danych dla Zabbix proxy
sqlplus> @images.sql
sqlplus> @data.sql

Ustaw parametr inicjalizacji CURSOR_SHARING=FORCE, aby uzyskać najlepszą wydajność.

Konfiguracja połączenia

Zabbix obsługuje dwa typy identyfikatorów połączenia (metod połączenia):

  • Easy Connect
  • Net Service Name

Parametry konfiguracji połączenia dla serwera Zabbix i proxy Zabbix mogą być ustawione w plikach konfiguracyjnych. Ważnymi parametrami dla serwera i proxy są DBHost, DBUser, DBName oraz DBPassword. Te same parametry są ważne dla frontend: $DB["SERVER"], $DB["PORT"], $DB["DATABASE"], $DB["USER"], $DB["PASSWORD"].

Zabbix używa następującej składni ciągu połączenia:

{DBUser/DBPassword[@<connect_identifier>]} 

<connect_identifier> może być określony albo w formie "Net Service Name", albo "Easy Connect".

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

Easy Connect używa następujących parametrów do połączenia z bazą danych:

  • Host - nazwa hosta lub adres IP komputera serwera bazy danych (parametr DBHost w pliku konfiguracyjnym).
  • Port - port nasłuchu na serwerze bazy danych (parametr DBPort w pliku konfiguracyjnym; jeśli nie jest ustawiony, zostanie użyty domyślny port 1521).
  • <service_name> - nazwa usługi bazy danych, do której chcesz uzyskać dostęp (parametr DBName w pliku konfiguracyjnym).

Przykład

Parametry bazy danych ustawione w pliku konfiguracyjnym serwera lub proxy (zabbix_server.conf i zabbix_proxy.conf):

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

Łańcuch połączenia używany przez Zabbix do nawiązania połączenia:

DBUser/DBPassword@DBHost:DBPort/DBName

Podczas instalacji frontend Zabbix ustaw odpowiednie parametry w kroku Configure DB connection kreatora instalacji:

  • Host bazy danych: localhost
  • Port bazy danych: 1521
  • Nazwa bazy danych: ORCL
  • Użytkownik: myusername
  • Hasło: mypassword

Alternatywnie parametry te można ustawić w pliku konfiguracyjnym frontend (zabbix.conf.php):

$DB["TYPE"]                     = 'ORACLE';
$DB["SERVER"]                   = 'localhost';
$DB["PORT"]             = '1521';
$DB["DATABASE"]                 = 'ORCL';
$DB["USER"]                     = 'myusername';
$DB["PASSWORD"]                 = 'mypassword';
Nazwa usługi sieciowej

Możliwe jest połączenie z Oracle przy użyciu nazwy usługi sieciowej.

<net_service_name> to prosta nazwa usługi, która jest rozwiązywana do deskryptora połączenia.

Aby użyć nazwy usługi do utworzenia połączenia, musi ona być zdefiniowana w pliku tnsnames.ora znajdującym się zarówno na serwerze bazy danych, jak i w systemach klienta. Najprostszym sposobem, aby upewnić się, że połączenie zostanie nawiązane, jest zdefiniowanie lokalizacji pliku tnsnames.ora w zmiennej środowiskowej TNS_ADMIN. Domyślna lokalizacja pliku tnsnames.ora to:

$ORACLE_HOME/network/admin/

Przykładowy plik tnsnames.ora:

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

Aby ustawić parametry konfiguracji dla metody połączenia "Net Service Name", użyj jednej z poniższych opcji:

  • Ustaw pusty parametr DBHost i ustaw DBName jak zwykle:
<!-- -->
DBHost=
DBName=ORCL
  • Ustaw oba parametry i pozostaw oba puste:
<!-- -->
DBHost=
DBName=

W drugim przypadku należy ustawić zmienną środowiskową TWO_TASK. Określa ona domyślną zdalną usługę Oracle (service name). Gdy ta zmienna jest zdefiniowana, konektor łączy się z określoną bazą danych przy użyciu nasłuchującego procesu Oracle, który akceptuje żądania połączeń. Zmienna ta jest przeznaczona wyłącznie dla systemów Linux i UNIX. W systemie Microsoft Windows użyj zmiennej środowiskowej LOCAL.

Przykład

Połączenie z bazą danych przy użyciu Net Service Name ustawionego jako ORCL oraz domyślnego portu. Parametry bazy danych ustawione w pliku konfiguracyjnym serwera lub proxy (zabbix_server.conf i zabbix_proxy.conf):

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

Podczas instalacji frontend Zabbixa ustaw odpowiednie parametry w kroku Configure DB connection kreatora instalacji:

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

Alternatywnie parametry te można ustawić w pliku konfiguracyjnym frontend (zabbix.conf.php):

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

Łańcuch połączenia używany przez Zabbix do nawiązania połączenia:

DBUser/DBPassword@ORCL

Znane problemy

Aby poprawić wydajność, możesz przekonwertować typy pól z nclob na nvarchar2, zobacz znane problemy.