Руководство по настройке источника RDS MySQL
Это пошаговое руководство описывает, как настроить Amazon RDS MySQL для репликации данных в ClickHouse Cloud с помощью MySQL ClickPipe. Ответы на распространённые вопросы по CDC для MySQL см. на странице часто задаваемых вопросов по MySQL.
Включение хранения бинарного лога
Бинарный лог — это набор файлов журнала, содержащих информацию об изменениях данных, внесённых в экземпляр сервера MySQL; файлы бинарного лога необходимы для репликации. Чтобы настроить хранение бинарного лога в RDS MySQL, необходимо включить бинарное логирование и увеличить интервал хранения binlog.
1. Включите бинарное логирование через автоматическое резервное копирование
Функция автоматического резервного копирования определяет, включено или отключено бинарное логирование для MySQL. Автоматическое резервное копирование можно настроить для вашего экземпляра в консоли RDS, перейдя в 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, а затем перейдя на вкладку 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 рекомендуется для повышения производительности и упрощения устранения неполадок.
Глобальные идентификаторы транзакций (GTID) — это уникальные идентификаторы, назначаемые каждой зафиксированной транзакции в 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, добавьте задокументированные статические IP-адреса NAT в Inbound rules группы безопасности RDS.


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