Руководство по настройке источника RDS MySQL
В этом пошаговом руководстве показано, как настроить Amazon RDS MySQL для репликации данных в ClickHouse Cloud с помощью MySQL ClickPipe. С ответами на распространённые вопросы по CDC (фиксация изменений данных) в MySQL можно ознакомиться на странице MySQL FAQs.
Включение хранения бинарного лога
Бинарный лог — это набор файлов журнала, содержащих информацию об изменениях данных в экземпляре сервера MySQL. Файлы бинарного лога необходимы для репликации. Чтобы настроить хранение бинарного лога в RDS MySQL, необходимо включить ведение бинарного лога и увеличить период его хранения.
1. Включите бинарное логирование с помощью автоматического резервного копирования
Функция автоматического резервного копирования определяет, включено или отключено бинарное логирование для MySQL. Автоматическое резервное копирование можно настроить для вашего инстанса в RDS Console, перейдя в Modify > Additional configuration > Backup и установив флажок Enable automated backups (если он еще не установлен).

Рекомендуется установить для параметра Backup retention period достаточно большое значение, в зависимости от сценария использования репликации.
2. Увеличьте интервал хранения binlog
Если ClickPipes попытается возобновить репликацию и нужные файлы binlog будут удалены в соответствии с настроенным периодом хранения binlog, ClickPipe перейдет в состояние ошибки, и потребуется повторная синхронизация.
По умолчанию Amazon RDS очищает двоичный лог как можно скорее (т. е. применяется lazy purging). Рекомендуется увеличить интервал хранения binlog как минимум до 72 часов, чтобы обеспечить доступность файлов двоичного лога для репликации в аварийных сценариях. Чтобы задать интервал хранения двоичного лога (binlog retention hours), используйте процедуру mysql.rds_set_configuration:
Если этот параметр не задан или для него установлен слишком маленький интервал, это может привести к разрывам в двоичных логах и помешать ClickPipes возобновлять репликацию.
Настройка параметров binlog
Группу параметров можно найти, если щёлкнуть по экземпляру MySQL в RDS Console, а затем перейти на вкладку Configuration.
Если у вас кластер MySQL, параметры ниже могут находиться в группе параметров DB cluster, а не в группе параметров экземпляра базы данных.

Нажмите на ссылку группы параметров, после чего вы перейдёте на её отдельную страницу. В правом верхнем углу должна быть кнопка Edit.

Следующие параметры необходимо настроить следующим образом:
- Установите
binlog_formatв значениеROW.

- Установите
binlog_row_metadataв значениеFULL.

- Установите
binlog_row_imageв значениеFULL.

Затем нажмите Save Changes в правом верхнем углу. Возможно, потребуется перезагрузить экземпляр, чтобы изменения вступили в силу: вы увидите статус Pending reboot рядом со ссылкой на группу параметров на вкладке Configuration экземпляра RDS.
Включение режима GTID
MySQL ClickPipe также поддерживает репликацию без режима GTID. Однако включение режима GTID рекомендуется для повышения производительности и упрощения диагностики.
Global Transaction Identifiers (GTIDs) — это уникальные идентификаторы, назначаемые каждой зафиксированной транзакции в MySQL. Они упрощают репликацию binlog и делают диагностику более простой. Мы рекомендуем включить режим GTID, чтобы MySQL ClickPipe мог использовать репликацию, основанную на GTID.
Репликация, основанная на GTID, поддерживается для Amazon RDS for MySQL версий 5.7, 8.0 и 8.4. Чтобы включить режим GTID для вашего экземпляра Aurora MySQL, выполните следующие шаги:
- В консоли RDS нажмите на ваш экземпляр MySQL.
- Перейдите на вкладку Configuration.
- Нажмите на ссылку группы параметров (parameter group).
- Нажмите кнопку Edit в правом верхнем углу.
- Установите
enforce_gtid_consistencyв значениеON. - Установите
gtid-modeв значениеON. - Нажмите Save Changes в правом верхнем углу.
- Перезапустите экземпляр, чтобы изменения вступили в силу.

MySQL ClickPipe также поддерживает репликацию без режима GTID. Однако включение режима GTID рекомендуется для повышения производительности и упрощения диагностики.
Настройка пользователя базы данных
Подключитесь к вашему экземпляру RDS MySQL с учетной записью администратора и выполните следующие команды:
-
Создайте отдельного пользователя для ClickPipes:
-
Назначьте права на схему. В следующем примере показаны права для базы данных
mysql. Повторите эти команды для каждой базы данных и хоста, которые вы хотите реплицировать: -
Назначьте пользователю права на репликацию:
Настройка сетевого доступа
Управление доступом по IP-адресам
Чтобы ограничить трафик к вашему экземпляру Aurora MySQL, добавьте задокументированные статические NAT IP-адреса во входящие правила (Inbound rules) группы безопасности RDS.


Частный доступ через AWS PrivateLink
Чтобы подключиться к экземпляру RDS по приватной сети, используйте AWS PrivateLink. См. руководство по настройке AWS PrivateLink для ClickPipes, чтобы настроить подключение.
Дальнейшие шаги
Теперь, когда ваш экземпляр Amazon RDS MySQL настроен для репликации binlog и безопасного подключения к ClickHouse Cloud, вы можете создать свой первый MySQL ClickPipe. Ответы на распространённые вопросы о MySQL CDC см. на странице с часто задаваемыми вопросами по MySQL.