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

Руководство по настройке источника RDS MySQL

В этом пошаговом руководстве показано, как настроить Amazon RDS MySQL для репликации данных в ClickHouse Cloud с помощью MySQL ClickPipe. Для общих вопросов по MySQL CDC смотрите страницу часто задаваемых вопросов по MySQL.

Включение хранения бинарных логов

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

1. Включите бинарное логирование через автоматическое резервное копирование

Функция автоматических резервных копий определяет, включено ли бинарное логирование для MySQL. Автоматические резервные копии можно настроить для вашего экземпляра в консоли RDS, перейдя в Изменить > Дополнительная конфигурация > Резервное копирование и выбрав флажок Включить автоматические резервные копии (если он еще не выбран).

Включение автоматических резервных копий в RDS

Рекомендуем установить Период хранения резервных копий на разумно длительное значение, в зависимости от сценария использования репликации.

2. Увеличьте интервал хранения бинарного лога

предупреждение

Если ClickPipes пытается возобновить репликацию, и необходимые бинарные лог-файлы были очищены из-за установленного значения хранения бинарного лога, ClickPipe перейдет в состояние ошибки, и потребуется повторная синхронизация.

По умолчанию Amazon RDS очищает бинарный лог как можно быстрее (т.е. ленивое очищение). Рекомендуем увеличить интервал хранения бинарного лога как минимум до 72 часов, чтобы обеспечить доступность бинарных лог-файлов для репликации в сценариях сбоев. Чтобы установить интервал хранения бинарного лога (binlog retention hours), используйте процедуру mysql.rds_set_configuration:

mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);

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

Настройка параметров бинарного лога

Группа параметров может быть найдена, когда вы нажимаете на ваш экземпляр MySQL в консоли RDS, а затем переходите на вкладку Конфигурация.

подсказка

Если у вас есть кластер MySQL, параметры ниже могут быть найдены в группе параметров DB кластера, а не в группе экземпляров БД.

Где найти группу параметров в RDS

Нажмите на ссылку группы параметров, которая переведет вас на ее страницу. Вы должны увидеть кнопку Изменить в верхнем правом углу.

Изменить группу параметров

Следующие параметры необходимо установить следующим образом:

  1. binlog_format на ROW.
Формат бинарного лога на ROW
  1. binlog_row_metadata на FULL
Метаданные строк бинарного лога на FULL
  1. binlog_row_image на FULL
Изображение строки бинарного лога на FULL

Затем нажмите на Сохранить изменения в верхнем правом углу. Возможно, вам потребуется перезагрузить ваш экземпляр, чтобы изменения вступили в силу — признаком этого является наличие Ожидает перезагрузку рядом со ссылкой группы параметров на вкладке Конфигурация экземпляра RDS.

Включите режим GTID

подсказка

MySQL ClickPipe также поддерживает репликацию без режима GTID. Однако рекомендуется включить режим GTID для повышения производительности и упрощения устранения неполадок.

Глобальные идентификаторы транзакций (GTID) — это уникальные идентификаторы, присваиваемые каждой завершенной транзакции в MySQL. Они упрощают репликацию бинарного лога и делают устранение неполадок более простым. Мы рекомендуем включить режим GTID, чтобы MySQL ClickPipe мог использовать репликацию на основе GTID.

Репликация на основе GTID поддерживается для Amazon RDS для MySQL версий 5.7, 8.0 и 8.4. Чтобы включить режим GTID для вашего экземпляра Aurora MySQL, выполните следующие шаги:

  1. В консоли RDS нажмите на ваш экземпляр MySQL.
  2. Перейдите на вкладку Конфигурация.
  3. Нажмите на ссылку группы параметров.
  4. Нажмите на кнопку Изменить в верхнем правом углу.
  5. Установите enforce_gtid_consistency в ON.
  6. Установите gtid-mode в ON.
  7. Нажмите на Сохранить изменения в верхнем правом углу.
  8. Перезагрузите ваш экземпляр, чтобы изменения вступили в силу.
Режим GTID включен

подсказка

MySQL ClickPipe также поддерживает репликацию без режима GTID. Однако рекомендуется включить режим GTID для повышения производительности и упрощения устранения неполадок.

Настройка пользователя базы данных

Подключитесь к вашему экземпляру RDS MySQL как администратор и выполните следующие команды:

  1. Создайте отдельного пользователя для ClickPipes:
CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password';
  1. Предоставьте права на схему. Пример ниже показывает права для базы данных mysql. Повторите эти команды для каждой базы данных и хоста, которые вы хотите реплицировать:
GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
  1. Предоставьте пользователю права на репликацию:
GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';

Настройка сетевого доступа

Контроль доступа на основе IP адресов

Чтобы ограничить трафик к вашему экземпляру Aurora MySQL, добавьте записанные статические NAT IP адреса в Правила входящего трафика вашей группы безопасности RDS.

Где найти группу безопасности в RDS MySQL?
Изменить правила входящего трафика для вышеуказанной группы безопасности

Чтобы подключиться к вашему экземпляру RDS через частную сеть, вы можете использовать AWS PrivateLink. Следуйте руководству по настройке AWS PrivateLink для ClickPipes, чтобы настроить соединение.

Следующие шаги

Теперь, когда ваш экземпляр Amazon RDS MySQL настроен для репликации бинарного лога и безопасного подключения к ClickHouse Cloud, вы можете создать ваш первый MySQL ClickPipe. Для общих вопросов по MySQL CDC смотрите страницу часто задаваемых вопросов по MySQL.