Перейти к основному содержимому Перейти к дополнительному содержимому

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

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

  • Установите необходимый driver на сервере со шлюзом движения данных

  • Предоставьте необходимые разрешения в источнике данных

  • Настройка коннектора источника данных

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

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

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

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

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

  • Убедитесь, что на сервере шлюза Перемещение данных установлена версия Python 3.6 или более поздняя.

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

    python3 --version

Установка driver

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

  1. На компьютере шлюза Перемещение данных измените рабочую папку на:

    opt/qlik/gateway/movement/drivers/bin

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

    Синтаксис:

    ./install postgres

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

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

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

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

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

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

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

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

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

  1. На компьютере шлюза Перемещение данных измените рабочую папку на:

    opt/qlik/gateway/movement/drivers/bin

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

    Синтаксис:

    ./update postgres

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

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

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

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

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

Удаление driverа

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

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

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

  2. На компьютере шлюза Перемещение данных измените рабочую папку на:

    opt/qlik/gateway/movement/drivers/bin

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

    Синтаксис:

    ./uninstall postgres

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

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

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

После установки Data Movement Gateway загрузите следующие файлы RPM. Прямые ссылки для загрузки файлов можно найти в разделе binary-artifacts в /opt/qlik/gateway/movement/drivers/manifests/postgres.yaml. После завершения загрузки скопируйте файлы на компьютер Data Movement Gateway.

Когда Data Movement Gateway установлен в ОС Red Hat 9.x:

  • postgresql<версия>-libs-<версия>PGDG.rhel9.x86_64.rpm
  • postgresql<версия>-<версия>PGDG.rhel9.x86_64.rpm
  • postgresql<версия>-odbc-<версия>PGDG.rhel8.x86_64.rpm

Когда Data Movement Gateway установлен в ОС Red Hat 8.x:

  • postgresql<версия>-libs-<версия>PGDG.rhel8.x86_64.rpm
  • postgresql<версия>-<версия>PGDG.rhel8.x86_64.rpm
  • postgresql<версия>-odbc-<версия>PGDG.rhel8.x86_64.rpm

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

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

    sudo systemctl stop repagent

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

    sudo systemctl status repagent

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

    Active: inactive (dead) since <timestamp> ago

  3. Установите файлы RPM.

  4. Измените рабочий директорий на <Data Movement Gateway-Install-Dir>/bin.

  5. Скопируйте местоположение драйвера в файл site_arep_login.sh следующим образом:

    echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/pgsql-<version>/lib" >> site_arep_login.sh

    Таким образом драйвер будет добавлен к LD_LIBRARY_PATH, а в файле site_arep_login.sh будет сохранено местоположение драйвера.

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

    cat site_arep_login.sh
  7. Проверьте, что в файле /etc/odbcinst.ini есть запись для PostgreSQL, как описано в этом примере:

    [PostgreSQL]

    Description = PostgreSQL ODBC driver

    Driver = /usr/pgsql-13/lib/psqlodbc.so

    Setup = /usr/pgsql-13/lib/psqlodbcw.so

    UsageCount = 1

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

    sudo systemctl start repagent

  9. Если нужно, подтвердите, что сервис запущен:

    sudo systemctl status repagent

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

    Active: active (running) since <timestamp> ago

Порт

По умолчанию для исходящего трафика необходимо открыть порт 5432 на сервере Data Movement Gateway. Порт можно изменить в настройках подключения.

Получение изменений с пользовательской базы данных PostgreSQL

  • IP-адрес сервера Data Movement gateway должен быть добавлен в файл конфигурации pg_hba.conf с ключевым словом «replication» в поле базы данных.

    Пример:

    host replication all 176.123.1.212/32 trust

  • Убедитесь, что установлен подключаемый модуль вывода test_decoding (находится в пакете postgresql12-contrib).

  • Для создания «слотов» в базе данных пользователю, указанному в параметрах подключения, должны быть предоставлены права на чтение и запись в исходной базе данных. Слоты необходимы для чтения изменений.

  • Следующие параметры и значения должны быть настроены в файле конфигурации postgresql.conf.

    wal_level = logical
    max_replication_slots = number of replication slots

    Где number of replication slots должно быть больше одного и задано в соответствии с количеством задач, которые необходимо выполнить. Например, для выполнения пяти задач необходимо задать max_replication_slots = 5. Слоты открываются автоматически при запуске задачи и остаются открытыми, даже если задача больше не выполняется. Обратите внимание, что открытые слоты необходимо будет удалить вручную.

    max_wal_senders = number of concurrent tasks

    Где number of concurrent tasks должно быть больше одной и задано в соответствии с количеством задач, выполняемых одновременно. Например, для одновременного выполнения трех задач необходимо задать max_wal_senders = 3.

  • Параметр wal_sender_timeout завершает подключения, которые остаются неактивными дольше указанного времени в миллисекундах. По умолчанию время ожидания составляет 60 секунд. Чтобы отключить время ожидания (дополнительно), задайте этому параметру нулевое значение.

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

    По умолчанию значение параметра wal_sender_timeout интерпретируется сервером как время в миллисекундах. Чтобы явно указать время в секундах, добавьте «s» к значению, как в следующем примере:

    wal_sender_timeout=60s

Для получения дополнительной информации о параметрах конфигурации см. раздел «Репликация» в главе «Конфигурация сервера» в интерактивной справке PostgreSQL.

Получение изменений с Amazon RDS для PostgreSQL

Можно использовать основную учетную запись пользователя AWS для экземпляра базы данных в качестве пользователя для исходной конечной точки Amazon RDS for PostgreSQL. Основная учетная запись пользователя имеет необходимые роли, которые позволяют настроить CDC (захват данных изменений).

Если требуется использовать не основную, а другую учетную запись пользователя, эта запись должна иметь роли rds_superuser и rds_replication. Роль rds_replication предоставляет разрешения для управления логическими слотами и для потоковой передачи данных с использованием логических слотов.

Чтобы обеспечить возможность логической репликации для экземпляра базы данных Amazon RDS PostgreSQL, выполните следующие действия.

  1. Создайте новую группу параметров со следующей конфигурацией:
    1. Задайте значение 1 параметру rds.logical_replication в группе параметров базы данных.
    2. max_wal_senders – количество задач, которые могут выполняться параллельно.
    3. max_replication_slots – каждое подключение (то есть задача) создает новый слот; этот параметр настраивает количество подключений в базе данных, которые можно установить одновременно.
  2. Свяжите экземпляр Amazon RDS с группой параметров.

Получение изменений с Microsoft Azure для PostgreSQL

Чтобы обеспечить возможность захвата изменений из Microsoft Azure for PostgreSQL, необходимо задать свойству replication значение logical, как описано в инструкциях ниже.

  1. Откройте Azure CLI и выполните следующую команду:

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

    Можно загрузить CLI или подключиться через shell-команду к порталу Azure.

    az postgres server configuration set --resource-group resource-group --server-name server-name --name azure.replication_support --value logical

    az postgres server configuration set --resource-group azuredb --server-name qlik-azure-pg --name azure.replication_support --value logical

     

  2. Перезапустите базу данных (с помощью командной строки или через портал).

Отслеживание изменений из Google Cloud SQL for PostgreSQL

Примечание к информацииДля этой функции требуется Data Movement Gateway 2022.11.42 или более поздней версии.

Чтобы получать изменения из базы данных, необходимо настроить логическую репликацию.

Настройка логической репликации:

  1. На платформе Google Cloud установите следующие флажки рядом с параметрами PostgreSQL:

    • cloudsql.logical_decoding=on
    • max_replication_slots: каждое подключение (то есть задача) создает новый слот; этот параметр настраивает количество подключений в базе данных, которые можно установить одновременно. Если возникают проблемы с производительностью, попробуйте увеличить это значение.
    • max_wal_senders: количество задач, которые могут выполняться параллельно. Если возникают проблемы с производительностью, попробуйте увеличить это значение.

    Для получения дополнительной информации об этих параметрах см. https://www.postgresql.org/docs/current/runtime-config-replication.html

  2. В базе данных измените пользователя, заданного в настройках connector (username), чтобы обеспечить возможность репликации:

    ALTER USER username WITH REPLICATION;

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!