Настройка кластеров PostgreSQL и Kafka для интеграции с SyncXpert

Настройка кластеров PostgreSQL

Потребуется 2 кластера PostgreSQL:

Настройка кластера PostgreSQL с базой данных-источником

Чтобы настроить кластер PostgreSQL:

  1. В главном меню портала перейдите в раздел Ресурсы Базы данных Managed Service for PostgreSQL.
  2. Выберите нужный кластер. Если кластера нет, создайте его.
  3. Перейдите на вкладку Настройки СУБД и добавьте параметр:Он включает механизм логического декодирования, необходимый SyncXpert Connector Astra VM для чтения потока изменений из WAL-журнала и передачи их в Kafka.
  4. Перейдите на вкладку Пользователи и добавьте двух пользователей:
    • для первого пользователя установите флажки Может создавать БД и Имеет привилегии администратора;
    • для второго пользователя установите флажок Может подключаться к серверу в режиме репликации.
  5. Перейдите на вкладу Базы данных и создайте базу данных-источник. В поле Владелец выберите первого пользователя, добавленного на предыдущем шаге (с флажками Может создавать БД и Имеет привилегии администратора).

    Примечание

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

  6. Обратитесь в тех. поддержку Т1 Облако, чтобы:
    1. В базе данных-источнике создать публикацию и логический слот.
      При создании публикации указываются таблицы, изменения которых нужно реплицировать. Слот в режиме потоковой передачи отправляет изменения данных кластеру SyncXpert Connector Astra VM.

      Если нужно реплицировать все таблицы базы данных-источника:

      где <имя пользователя> — имя второго созданного пользователя (с флажком Может подключаться к серверу в режиме репликации).

      Если нужно реплицировать только определённые таблицы:

      где <имя пользователя> — имя второго созданного пользователя (с флажком Может подключаться к серверу в режиме репликации).

      Важно

      Для корректной настройки SyncXpert Connector Astra VM необходимо создать публикацию до создания логического слота.

    2. Создать схему и таблицу для механизма Heartbeat  и настроить права для них.

      где <имя пользователя> — имя второго созданного пользователя (с флажком Может подключаться к серверу в режиме репликации).
    3. Если при создании публикации указаны не все таблицы (FOR ALL TABLES), а только определённые (FOR TABLE), нужно включить таблицу для механизма Heartbeat в публикацию:

Настройка кластера PostgreSQL с базой данных-приёмником

Чтобы настроить кластер PostgreSQL:

  1. В главном меню портала перейдите в раздел Ресурсы Базы данных Managed Service for PostgreSQL.
  2. Выберите нужный кластер. Если кластера нет, создайте его.
  3. Перейдите на вкладку Пользователи и добавьте одного пользователя, установив флажок Может подключаться к серверу в режиме репликации.
  4. Перейдите на вкладу Базы данных и создайте базу данных-приёмник. В поле Владелец выберите пользователя, добавленного на предыдущем шаге.

    Примечание

    Если у вас несколько баз данных-приёмников, для каждой из них нужно создать и настроить кластер PostgreSQL и кластер SyncXpert Replicat Astra VM.

Настройка кластера Kafka

Чтобы настроить кластер Kafka:

  1. В главном меню портала перейдите в раздел Ресурсы Приложения Managed Service for Kafka Кластеры.
  2. Выберите нужный кластер. Если кластера нет, создайте его.

    Версия: 2.13-3.6.2 или выше.

    Размер дополнительного диска зависит от объёма генерации WAL-журналов в базе данных-источнике:

    Объём генерации WAL-журналов (в сутки)1 ГБ2-5 ГБ6-15 ГБ16-40 ГБ41-50 ГБ51-75 ГБ76-100 ГБ101-200 ГБ201-300 ГБ
    Размер дополнительного диска кластера Kafka
    (если данные в топиках хранятся не более 2 дней)
    3 ГБ15 ГБ50 ГБ120 ГБ150 ГБ230 ГБ350 ГБ500 ГБ750 ГБ
  3. Создайте топики:

    Создайте 4 топика с именами:

    • dbzm-offset-<TOPIC.PREFIX> — для хранения информации о зафиксированном смещении реплицируемых данных;

    • dbzm-config-<TOPIC.PREFIX> — для хранения конфигурации коннектора;

    • dbzm-status-<TOPIC.PREFIX> — для хранения статуса коннектора;

    • repl-offset-<SUFFIX> — для хранения обработанного смещения кластером SyncXpert Replicat Astra VM,
      где:
      • <TOPIC.PREFIX> — префикс топиков, который определяет и предоставляет пространство имён для кластера PostgreSQL, из которого SyncXpert читает изменения;
      • <SUFFIX> — может совпадать с <TOPIC.PREFIX>.

    Для каждого топика укажите:

    • Количество разделов * — 1;
    • Тип очистки * — compact.

    Создайте топик с именем <TOPIC.HEARTBEAT.PREFIX>.<TOPIC.PREFIX>,

    где:

    • <TOPIC.HEARTBEAT.PREFIX> — префикс топика для механизма Heartbeat;

    • <TOPIC.PREFIX> — укажите тот же префикс, что и в системных топиках.

    Для топика укажите:

    • Количество разделов * — 1;
    • Тип очистки * — delete;
    • Время хранения информации в Topic, мс * — 30 минут.

    Создайте для каждой реплицируемой таблицы топик с именем <TOPIC.PREFIX>.<имя схемы БД>.<имя таблицы БД>,

    где:

    • <TOPIC.PREFIX> — укажите тот же префикс, что и в системных топиках;
    • <имя схемы БД> — имя схемы таблицы, данные которой будут реплицироваться;

    • <имя таблицы БД> — имя таблицы, данные которой будут реплицироваться.

      Примечание

      Если нужно реплицировать все таблицы одной схемы, нельзя создать один топик с именем <TOPIC.PREFIX>.<имя схемы БД>. Обязательно создайте топик для каждой таблицы.

    Для каждого топика укажите:

    • Количество разделов * — 1;
    • Тип очистки * — delete;
    • Время хранения информации в Topic, мс * — 48 часов.