# Oracle

В этом разделе объясняется настройка подключения к цели Oracle с использованием коннектора цели Oracle. Oracle можно использовать в качестве цели только в задаче репликации. Прежде чем подключаться к цели Oracle, необходимо настроить [Необходимые разрешения](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/oracle-target.htm#Permissi) в базе данных. Если подключение к Oracle осуществляется через Шлюз движения данных, также требуется установить необходимый драйвер, как описано в [Настройка драйвера](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/oracle-target.htm#Driver).

Для получения дополнительной информации об ограничениях и замечаниях при использовании коннектора Oracle см. раздел [Ограничения и замечания](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/oracle-target.htm#Limitati).

## Настройка свойств подключения

Чтобы настроить коннектор, выполните следующие действия:

1. В виде Подключения нажмите Создать подключение.

2. Выберите коннектор цели Oracle, а затем задайте следующие настройки.

### Цель данных

* Шлюз данных: При работе с Шлюз движения данных выберите шлюз данных, с использованием которого будет тестироваться подключение к цели Oracle. Это должен быть тот же шлюз, который использовался для доступа к источнику данных.

  Примечание к информации

  * Это поле недоступно при использовании подписки Qlik Talend Cloud Starter, так как Шлюз движения данных не поддерживается для этого уровня подписки.

  * Также необходимо установить соответствующий драйвер на компьютер с Шлюз движения данных. Для получения подробных сведений см. [Настройка драйвера](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/oracle-target.htm#Driver) ниже.

* Строка подключения: строка подключения Oracle для базы данных Oracle, с которой требуется работать.

  Примечание к информации

  * При репликации в автономное хранилище данных Oracle сначала необходимо выполнить процедуру, описанную в разделе [Подключение к автономному хранилищу данных Oracle](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/oracle-target.htm#Connecti).
  * Эта информация обрабатывается с учетом регистра.

### Свойства учетной записи (Account properties)

Имя пользователя и Пароль: имя и пароль пользователя для авторизованного доступа к базе данных сервера Oracle.

### Внутренние свойства

Внутренние свойства предназначены для особых вариантов использования и поэтому не отображаются в диалоговом окне. Их можно использовать только по указанию службы поддержки Qlik.

Используйте кнопки the Создать icon и the Отмена icon справа от полей, чтобы при необходимости добавить или удалить свойства.

### Имя

Отображаемое имя подключения.

## Предварительные требования

### Необходимые разрешения

Пользователю, указанному в строке подключения, должны быть предоставлены следующие права в базе данных Oracle:

* CREATE ANY TABLE

* CREATE ANY INDEXES

* ALTER ANY TABLE

* DROP ANY TABLE

* INSERT ANY TABLE

* UPDATE ANY TABLE

* DELETE ANY TABLE

* SELECT ANY TABLE

* SELECT all\_indexes

* SELECT all\_ind\_columns

* SELECT all\_constraints

* SELECT all\_cons\_columns

* LOCK ANY TABLE

### Настройка драйвера

driver можно установить с помощью программы для установки драйверов (рекомендуется) или вручную. Ручную установку следует выполнять только в том маловероятном случае, если возникла проблема с программой для установки драйверов.

#### Использование программы для установки драйверов для установки драйвера

В этом разделе описывается процедура установки необходимого driverа. Она включает выполнение скрипта, который автоматически загружает, устанавливает и настраивает необходимый driver. Также можно выполнять скрипты для обновления и удаления driverа по необходимости.

Подготовка к установке

* Убедитесь, что на сервере шлюза Data Movement установлена версия Python 3.6 или более поздняя.

  Python предустанавливается в большинстве дистрибутивов Linux. Чтобы проверить, какая версия Python установлена в системе, выполните следующую команду:

  python3 --version

Установка driver

Чтобы загрузить и установить driver, выполните следующие действия.

1. На компьютере шлюза Data Movement измените рабочую папку на:

   opt/qlik/gateway/movement/drivers/bin

2. Выполните следующую команду:

   Синтаксис:

   ./install oracle

   Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Data Movement. После этого выполните команду install oracle еще раз.

   В противном случае откроется лицензионное соглашение с конечным пользователем driverа.

3. Выполните одно из следующих действий:

   * Нажмите клавишу [Enter] несколько раз, чтобы медленно прокрутить лицензионное соглашение.
   * Нажимайте клавишу «Пробел» несколько раз, чтобы быстро прокрутить лицензионное соглашение.
   * Нажмите клавишу «q», чтобы закрыть текст лицензионного соглашения и перейти к шагу принятия/отклонения.

4. Выполните одно из следующих действий:

   * Введите «y» и нажмите клавишу [Enter], чтобы принять лицензионное соглашение и запустить установку.

   * Введите «n» и нажмите клавишу [Enter], чтобы отклонить лицензионное соглашение и отменить установку.

   * Введите «v» и нажмите клавишу [Enter], чтобы снова открыть лицензионное соглашение для просмотра.

   Будет установлен driver.

Обновление driverа

Выполните команду обновления, если требуется удалить предыдущие версии driverа перед установкой предоставленной версии driverа.

Чтобы загрузить и обновить driver, выполните следующие действия.

1. На компьютере шлюза Data Movement измените рабочую папку на:

   opt/qlik/gateway/movement/drivers/bin

2. Выполните следующую команду:

   Синтаксис:

   ./update oracle

   Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Data Movement. После этого выполните команду update oracle еще раз.

   В противном случае откроется лицензионное соглашение с конечным пользователем driverа.

3. Выполните одно из следующих действий:

   * Нажмите клавишу [Enter] несколько раз, чтобы медленно прокрутить лицензионное соглашение.
   * Нажимайте клавишу «Пробел» несколько раз, чтобы быстро прокрутить лицензионное соглашение.
   * Нажмите клавишу «q», чтобы закрыть текст лицензионного соглашения и перейти к шагу принятия/отклонения.

4. Выполните одно из следующих действий:

   * Введите «y» и нажмите клавишу [Enter], чтобы принять лицензионное соглашение и запустить установку.
   * Введите «n» и нажмите клавишу [Enter], чтобы отклонить лицензионное соглашение и отменить установку.
   * Введите «v» и нажмите клавишу [Enter], чтобы снова просмотреть лицензионное соглашение от начала.

   Будет удален старый driver и установлен новый driver.

Удаление driverа

Выполните команду удаления, если требуется удалить driver.

Чтобы удалить driver, выполните следующие действия.

1. Остановите все задачи, использующие данный коннектор.

2. На компьютере шлюза Data Movement измените рабочую папку на:

   opt/qlik/gateway/movement/drivers/bin

3. Выполните следующую команду:

   Синтаксис:

   ./uninstall oracle

   driver будет удален.

#### Установка драйвера вручную

Установку driver вручную следует пытаться выполнить только в том случае, если автоматическая установка драйвера не завершилась успешно.

После установки Шлюз движения данных загрузите драйвер oracle-instantclient-basiclite-&lt;version&gt;.x86\_64.rpm. Прямую ссылку для загрузки поддерживаемой версии можно найти в разделе binary-artifacts в /opt/qlik/gateway/movement/drivers/manifests/oracle.yaml. После завершения загрузки скопируйте RPM на компьютер Шлюз движения данных.

Затем на сервере Data Movement Gateway откройте приглашение оболочки и выполните действия, указанные ниже.

1. Остановите службу Data Movement Gateway:

   sudo systemctl stop repagent

2. Если нужно, подтвердите, что служба остановлена:

   sudo systemctl status repagent

   Статус должен быть следующим:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. Установите драйвер (RPM).

4. Дополнительно создайте символьную ссылку в каталоге `$Oracle_Home\lib`, если такая ссылка отсутствует в системе. Назовите ссылку `libclntsh.so` и свяжите ее с конкретной версией этого файла.

   Пример:

   lrwxrwxrwx 1 oracle oracle 63 Oct 2 14:16 libclntsh.so -&gt; /u01/app/oracle/home/lib/libclntsh.so.21.1

5. Измените рабочий каталог на &lt;Data Movement Gateway-Install-Dir&gt;/bin и добавьте переменную среды `LD_LIBRARY_PATH` в каталог Oracle Instant Client, а также в каталог Data Movement Gatewaylib, скопировав местоположение драйвера в файл `site_arep_login.sh`:

   echo "export LD\_LIBRARY\_PATH=\$LD\_LIBRARY\_PATH:/opt/oracle/instantclient\_&lt;version&gt;:/opt/qlik/gateway/movement/lib/" &gt;&gt; site\_arep\_login.sh

6. При необходимости подтвердите, что местоположение драйвера было скопировано:

   ```
   cat site_arep_login.sh
                           
   ```

7. Запустите службу Data Movement Gateway.

   sudo systemctl start repagent

8. При необходимости подтвердите, что служба запущена.

   sudo systemctl status repagent

   Статус должен быть следующим:

   Active: active (running) since &lt;timestamp&gt; ago

### Подключение к автономному хранилищу данных Oracle

При репликации в Oracle Autonomous Data Warehouse необходимо следовать описанной ниже процедуре.

Чтобы настроить подключение к Oracle Autonomous Data Warehouse (ADW), требуется файл ZIP с удостоверением клиента (бумажником), загруженный при настройке среды Oracle Autonomous Data Warehouse.

Чтобы обеспечить возможность подключения Qlik Talend Data Integration к службе Oracle Autonomous Data Warehouse, выполните следующие действия.

1. Извлеките содержимое ZIP-файла с удостоверением клиента в папку по своему выбору.

   Это может быть любая папка, но в данном примере извлеченные файлы будут находиться в папке Linux /home/adw\_credentials.

2. В папке с извлеченными файлами измените файл sqlnet.ora, заменив ?/network/admin на путь к папке, содержащей извлеченные файлы:

   `WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/home/adw_credentials")))`

   `SSL_SERVER_DN_MATCH=yes`

3. Создайте переменную среды TNS\_ADMIN и задайте в качестве значения местоположение файла удостоверения.

   Выполните следующую команду:

   `export TNS_ADMIN=/home/adw_credentials`

   `export PATH=$TNS_ADMIN:$PATH`

4. В коннекторе Цель Oracle введите в поле Строка подключения одно из имен из файла tnsnames.ora.

Для получения дополнительной информации о настройке подключения к Oracle ADW см.:

[Подключение к автономной обработке транзакций с использованием клиентского приложения](https://docs.oracle.com/en/cloud/paas/atp-cloud/atpug/connect-preparing.html#GUID-EFAFA00E-54CC-47C7-8C71-E7868279EF3B)

## Ограничения и замечания

При использовании Oracle в качестве цели репликации действуют следующие ограничения:

* В базе данных Oracle нельзя создавать новые схемы. Чтобы реплицировать данные в новую схему, эта схема должна уже существовать в целевой базе данных. После этого следует указать имя новой схемы на вкладке [Metadata](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings-metadata.htm) в параметрах задачи.

* При применении изменений в режиме [Пакетная оптимизация](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings-replication.htm) пустые столбцы LOB могут реплицироваться как значения NULL.

* Если включен параметр Ограничить размер LOB до и таблица содержит данные NCLOB, то после завершения полной загрузки размер NCLOB в цели будет усечен до половины размера, заданного в поле [Ограничить размер LOB до](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings-metadata.htm). CDC будет усекать размер в соответствии с заданным ограничением.

## Типы данных

Информация о собственном типе данных сохраняется и отображается в столбце Собственный тип данных в видах набора данных. Если этот столбец не отображается, необходимо открыть инструмент «Управление столбцами» в виде набора данных и выбрать столбец Собственный тип данных.

Типы данных

| Типы данных Qlik Cloud | Типы данных Oracle |
| --- | --- |
| BOOLEAN | ЧИСЛО (1) |
| BYTES | RAW (длина) |
| DATE | DATETIME |
| TIME | Метка времени (0) |
| DATETIME | Если масштаб &lt;= 9, то TIMESTAMP (scale)<br><br>В противном случае, VARCHAR2 (37) |
| INT1 | ЧИСЛО (3) |
| INT2 | ЧИСЛО (5) |
| INT4 | ЧИСЛО (10) |
| INT8 | ЧИСЛО (19) |
| NUMERIC | ЧИСЛО (p,s) |
| REAL4 | BINARY\_FLOAT |
| REAL8 | BINARY\_DOUBLE |
| STRING | С указанием date: DATE<br><br>С указанием time: TIMESTAMP<br><br>С указанием timestamp\_with\_timezone: TIMESTAMP<br><br>С указанием timestamp\_with\_timezone: TIMESTAMP WITH TIMEZONE<br><br>С указанием timestamp\_with\_local\_timezone: TIMESTAMP WITH LOCAL TIMEZONE<br><br>С указанием interval\_year\_to\_month: INTERVAL YEAR TO MONTH<br><br>С указанием interval\_day\_to\_second: INTERVAL DAY TO SECOND<br><br>Если длина &gt; 4000: CLOB<br><br>Во всех остальных случаях: VARCHAR2 (Length) |
| UINT1 | ЧИСЛО (3) |
| UINT2 | ЧИСЛО (5) |
| UINT4 | ЧИСЛО (10) |
| UINT8 | ЧИСЛО (19) |
| WSTRING | NVARCHAR2 (длина)<br><br>Обратите внимание, что когда длина больше 2000, тип данных столбца будет NCLOB. |
| BLOB | BLOB<br><br>Примечание к информации<br><br><ul> <li>Чтобы использовать этот тип данных в задаче репликации, необходимо включить использование BLOB для конкретной задачи.</li> <li>Во время операции CDC или во время полной загрузки, когда включен параметр <span>Разрешить неограниченный размер LOB</span>, типы данных LOB поддерживаются только в таблицах с первичным ключом или уникальным индексом. </li> </ul> |
| CLOB | CLOB<br><br>Примечание к информации<br><br><ul> <li>Чтобы использовать этот тип данных в задаче репликации, необходимо включить использование CLOB для конкретной задачи.</li> <li>Во время операции CDC или во время полной загрузки, когда включен параметр <span>Разрешить неограниченный размер LOB</span>, типы данных LOB поддерживаются только в таблицах с первичным ключом или уникальным индексом. </li> </ul> |
| NCLOB | NCLOB<br><br>Примечание к информации<br><br><ul> <li>Чтобы использовать этот тип данных в задаче репликации, необходимо включить использование NCLOB для конкретной задачи.</li> <li>Во время операции CDC или во время полной загрузки, когда включен параметр <span>Разрешить неограниченный размер LOB</span>, типы данных LOB поддерживаются только в таблицах с первичным ключом или уникальным индексом. </li> </ul> |
| Целевой тип данных XMLTYPE применим только в задачах репликации из Oracle в Oracle. См. примечание ниже. | XMLTYPE |