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

Руководство по настройке источника 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 (если он ещё не установлен).

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

Рекомендуется задать для параметра Backup retention period достаточно большое значение в зависимости от сценария использования репликации.

2. Увеличьте интервал хранения binlog

Примечание

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

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

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

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

Настройка параметров binlog

Группу параметров можно найти, выбрав экземпляр MySQL в консоли RDS, а затем перейдя на вкладку Configuration.

Совет

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

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

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

Редактирование группы параметров

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

  1. binlog_formatROW.
Binlog format со значением ROW
  1. binlog_row_metadataFULL
Binlog row metadata со значением FULL
  1. binlog_row_imageFULL
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, выполните следующие действия:

  1. В консоли RDS выберите экземпляр MySQL.
  2. Перейдите на вкладку Configuration.
  3. Нажмите на ссылку группы параметров (parameter group).
  4. Нажмите кнопку Edit в правом верхнем углу.
  5. Установите для enforce_gtid_consistency значение ON.
  6. Установите для gtid-mode значение ON.
  7. Нажмите Save Changes в правом верхнем углу.
  8. Перезагрузите экземпляр, чтобы изменения вступили в силу.
GTID включён

Совет

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

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

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

  1. Создайте отдельного пользователя для ClickPipes:

    CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password';
    
  2. Предоставьте права на схему. В следующем примере показаны права для базы данных mysql. Повторите эти команды для каждой базы данных и каждого хоста, которые нужно реплицировать:

    GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
    
  3. Предоставьте пользователю права на репликацию:

    GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
    GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
    

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

Управление доступом на основе IP-адресов

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

Где найти группу безопасности в RDS MySQL?
Из�менение правил входящего трафика (Inbound rules) для этой группы безопасности

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

Дальнейшие шаги

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