[comment]: # ({526dbeba-710cea74})
# 12. Настройка базы данных Oracle

[comment]: # ({/526dbeba-710cea74})

[comment]: # ({c3411fd2-c3411fd2})
#### Обзор

В этом разделе содержатся инструкции по созданию базы данных Oracle и
настройке соединений между базой данных и Zabbix сервером, прокси
и веб-интерфейсом.

[comment]: # ({/c3411fd2-c3411fd2})

[comment]: # ({25ccb612-2fd36a67})
### Создание базы данных

Мы предполагаем, что существует пользователь базы данных *zabbix* с паролем *password*,
и он имеет разрешения на создание объектов базы данных в службе ORCL, расположенной
на сервере *хост* базы данных Oracle. Zabbix требует базу данных 
с набором символов Unicode и кодировкой UTF8. Проверить текущие
настройки:

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

Теперь подготовьте базу данных:

    cd /путь/к/исходникам-zabbix/database/oracle
    sqlplus zabbix/password@oracle_host/ORCL
    sqlplus> @schema.sql
    # остановитесь здесь, если вы создаёте базу данных для Zabbix прокси
    sqlplus> @images.sql
    sqlplus> @data.sql

::: notetip
Пожалуйста, установите параметр инициализации
CURSOR\_SHARING=FORCE для лучшей производительности.
:::

[comment]: # ({/25ccb612-2fd36a67})

[comment]: # ({db4ecc98-db4ecc98})
### Настройка соединения

Zabbix поддерживает два вида идентификаторов соединений (методов подключения):

-   Лёгкое подключение (Easy Connect)
-   Имя сетевой службы (Net Service Name)

Параметры настроек соединения для Zabbix сервера и Zabbix прокси
могут быть заданы в их файлах конфигурации. Важнейшими параметрами для 
сервера и прокси являются *DBHost*, *DBUser*, *DBName* и *DBPassword*. Те же
параметры являются важными и для веб-интерфейса: *$DB\["SERVER"\]*,
*$DB\["PORT"\]*, *$DB\["DATABASE"\]*, *$DB\["USER"\]*,
*$DB\["PASSWORD"\]*.

Zabbix использует следующий синтактис строки подключения (connection string):

    {DBUser/DBPassword[@<connect_identifier>]} 

<connect\_identifier> может быть указан либо в формате "Net
Service Name", либо "Easy Connect".

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

[comment]: # ({/db4ecc98-db4ecc98})

[comment]: # ({ed80a373-ed80a373})
#### Лёгкое подключение (Easy Connect)

Лёгкое подключение использует следующие параметры для подключения к базе данных:

-   *Host* — имя хоста или IP адрес компьютера с сервером базы данных
    (параметр DBHost в файле конфигурации).
-   *Port* — порт, открытый на сервере баз данных (параметр DBPort
    в файле конфигурации; если не задан, то по умолчанию используется порт 1521).
-   <service\_name> — имя службы базы данных, к которой Вы хотите иметь
    доступ (параметр DBName в файле конфигурации).

**Пример:**

Параметры базы данных заданы в файле конфигурации сервера или прокси
(zabbix\_server.conf либо zabbix\_proxy.conf):

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

Строка подключения, используемая Zabbix-ом, чтобы установить соединение:

    DBUser/DBPassword@DBHost:DBPort/DBName

Во время установки веб-интерфейса Zabbix, задайте соответствующие параметры на
шаге *Настройка соединения с базой данных* помощника по установке:

-   Хост базы данных: localhost
-   Порт базы данных: 1521
-   Имя базы данных: ORCL
-   Пользователь: myusername
-   Пароль: mypassword

![](../../../../assets/en/manual/appendix/install/oracle_easy_connect.png){width="600"}

Альтернативный способ — эти параметры можно задать в файле конфигурации веб-интерфейса (zabbix.conf.php):

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

[comment]: # ({/ed80a373-ed80a373})

[comment]: # ({9f0ccdfd-fe8fa72a})
#### Имя сетевой службы (Net Service Name)

Начиная с версии Zabbix 5.4.0, возможно подключиться к Oracle, используя имя сетевой службы.

<net\_service\_name> — это простое имя для службы, которое раскрывается в дескриптор соединения.

Чтобы использовать имя службы для создания подключения, это имя службы
должно быть определено в файле tnsnames.ora, расположенном как на сервере
базы данных, так и на клиентской системе. Самый лёгкий способ убедиться,
что соединение будет установлено успешно, — это определить местоположение файла
tnsnames.ora в переменной окружения TNS\_ADMIN. По умолчанию местоположение
файла tnsnames.ora такое:

    $ORACLE_HOME/network/admin/

Простой пример файла tnsnames.ora:

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

Чтобы задать параметры конфигурации для метода подключения «Имя сетевой
службы», используйте одну из следующих опций:

-    Задайте параметр DBHost пустым, а параметр DBName — как обычно:

```{=html}
<!-- -->
```
    DBHost=
    DBName=ORCL

-   Задайте оба параметра и оставьте их пустыми:

```{=html}
<!-- -->
```
    DBHost=
    DBName=

Во втором случае должна быть установлена переменная окружения TWO\_TASK. Она
указывает удалённую службу Oracle (имя службы) по умолчанию. Когда эта
переменная определена, коннектор подключается к указанной базе, используя
Oracle листенер (listener), принимающий запросы на соединения. Эта переменная
используется только в Linux и UNIX. Для Microsoft Windows используйте переменную среды LOCAL.

**Пример:**

Подключиться к базе данных, используя имя сетевой службы, заданное как ORCL, и
порт по умолчанию. Параметры базы данных задаются в файле конфигурации
сервера или прокси (zabbix\_server.conf и zabbix\_proxy.conf):

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

Во время установки веб-интерфейса Zabbix, задайте соответствующие параметры на
шаге *Настройка подключения к БД* помощника по установке:

-   Хост базы данных:
-   Порт базы данных: 0
-   Имя базы данных: ORCL
-   Пользователь: myusername
-   Пароль: mypassword

![](../../../../assets/en/manual/appendix/install/oracle_service_name.png){width="600"}

Альтернативный вариант — можно задать эти параметры в файле конфигурации
веб-интерфейса (zabbix.conf.php):

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

Строка подключения, используемая Zabbix-ом, чтобы установить соединение:

    DBUser/DBPassword@ORCL

[comment]: # ({/9f0ccdfd-fe8fa72a})

[comment]: # ({74be0d8b-b56155a3})
#### Известные проблемы

Чтобы повысить производительность, вы можете преобразовать типы полей из *nclob* в *nvarchar2*, см. [известные проблемы](/manual/installation/known_issues#медленная-синхронизация-конфигурации-с-oracle).

[comment]: # ({/74be0d8b-b56155a3})
