This is a translation of the original English documentation page. Help us make it better.

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.