12 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.

Tworzenie bazy danych

Zakładamy, że użytkownik bazy danych zabbix z hasłem password istnieje i ma uprawnienia do tworzenia obiektów bazodanowych w usłudze ORCL znajdującej się na serwerze bazy danych Oracle host. Zabbix wymaga zestawu znaków Unicode i narodowego zestawu 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

Proszę ustawić parametr inicjalizacji CURSOR_SHARING=FORCE dla najlepszej wydajności.

Konfiguracja połączenia

Zabbix obsługuje dwa rodzaje identyfikatorów połączeń (metody połączenia):

  • Easy Connect
  • Net Service Name

Parametry konfiguracji połączenia dla serwera Zabbix i proxy Zabbix można ustawić w plikach konfiguracyjnych. Ważne parametry dla serwera i proxy to DBHost, DBUser, DBName i 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 w formie "Net Service Name" lub "Easy Connect".

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

Easy Connect

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

  • Host - nazwa hosta lub adres IP komputera serwera bazy danych (parametr DBHost w pliku konfiguracyjnym).
  • Port - port nasłuchiwania na serwerze bazy danych (parametr DBPort w pliku konfiguracyjnym; jeśli nie jest ustawiony, używany będzie 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

Ciąg połączenia używany przez Zabbix do nawiązania połączenia:

DBUser/DBPassword@DBHost:DBPort/DBName

Podczas instalacji frontendu Zabbix, ustaw odpowiednie parametry w kroku Konfiguruj połączenie DB kreatora konfiguracji:

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

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

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

Od wersji Zabbix 5.4.0 możliwe jest nawiązanie połączenia z Oracle za pomocą net service name.

<net_service_name> to prosty identyfikator dla usługi, który rozwiązuje się do deskryptora połączenia.

Aby używać nazwy usługi do tworzenia połączenia, ta nazwa usługi musi być zdefiniowana w pliku tnsnames.ora znajdującym się zarówno na serwerze bazy danych, jak i na systemach klientów. Najprostszym sposobem zapewnienia, że połączenie będzie udane, jest zdefiniowanie lokalizacji pliku tnsnames.ora w zmiennej środowiskowej TNS_ADMIN. Domyślna lokalizacja pliku tnsnames.ora to:

$ORACLE_HOME/network/admin/

Prosty przykład pliku 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 zmienna środowiskowa TWO_TASK musi być ustawiona. Określa domyślną zdalną usługę Oracle (nazwę usługi). Gdy ta zmienna jest zdefiniowana, connector łączy się z określoną bazą danych, korzystając z Oracle listener, który akceptuje żądania połączenia. Ta zmienna jest przeznaczona tylko dla systemów Linux i UNIX. Na systemach Microsoft Windows użyj zmiennej środowiskowej LOCAL.

Przykład:

Nawiąż połączenie z bazą danych za pomocą Net Service Name jako ORCL i 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 frontendu Zabbix, ustaw odpowiednie parametry w kroku Konfiguruj połączenie DB kreatora konfiguracji:

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

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

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

Ciąg połączenia używany przez Zabbix do nawiązania połączenia:

DBUser/DBPassword@ORCL

Znane problemy

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