ClickPipes для MySQL Часто задаваемые вопросы
Поддерживает ли MySQL ClickPipe MariaDB?
Да, MySQL ClickPipe поддерживает MariaDB 10.0 и выше. Конфигурация для него очень похожа на MySQL и по умолчанию использует репликацию GTID.
Поддерживает ли MySQL ClickPipe PlanetScale, Vitess или TiDB?
Нет, эти системы не поддерживают API бинарного лога MySQL.
Как управляется репликация?
Мы поддерживаем как репликацию GTID
, так и FilePos
. В отличие от Postgres, здесь нет слота для управления смещением. Вместо этого вам необходимо настроить ваш сервер MySQL с достаточным периодом сохранения бинарного лога. Если наше смещение в бинарном логе становится недействительным (например, зеркало приостановлено слишком долго, или происходит переключение базы данных во время использования репликации FilePos
), вам потребуется повторно синхронизировать трубопровод. Убедитесь, что вы оптимизировали материализованные представления в зависимости от целевых таблиц, так как неэффективные запросы могут замедлить прием данных и привести к превышению периода сохранения.
Также возможно, что неактивная база данных будет вращать файл лога, не позволяя ClickPipes продвигаться к более актуальному смещению. Вам может потребоваться настроить таблицу с частыми обновлениями.
В начале начальной загрузки мы записываем смещение бинарного лога, с которого начнется загрузка. Это смещение должно оставаться действительным на момент завершения начальной загрузки, чтобы CDC мог продолжить работу. Если вы загружаете большое количество данных, обязательно настройте соответствующий период сохранения бинарного лога. При настройке таблиц вы можете ускорить начальную загрузку, настроив Использовать настраиваемый ключ партиционирования для начальной загрузки для больших таблиц в дополнительных настройках, чтобы мы могли загружать одну таблицу параллельно.
Почему я получаю ошибку валидации TLS-сертификата при подключении к MySQL?
При подключении к MySQL вы можете столкнуться с ошибками сертификатов, такими как x509: certificate is not valid for any names
или x509: certificate signed by unknown authority
. Эти ошибки возникают из-за того, что ClickPipes по умолчанию включает шифрование TLS.
У вас есть несколько способов решить эти проблемы:
-
Установите поле TLS Host - Когда имя хоста в вашем подключении отличается от сертификата (часто встречается с AWS PrivateLink через Endpoint Service). Установите "TLS Host (необязательно)", чтобы оно соответствовало Общему названию (CN) или Альтернативному имени субъекта (SAN) сертификата.
-
Загрузите ваш Root CA - Для серверов MySQL, использующих внутренние центры сертификации или Google Cloud SQL в конфигурации по умолчанию для каждого экземпляра. Для получения дополнительной информации о том, как получить сертификаты Google Cloud SQL, смотрите этот раздел.
-
Настройте сертификат сервера - Обновите SSL-сертификат вашего сервера, чтобы включить все имена хостов подключения и использовать доверенный Центр сертификации.
-
Пропустите проверку сертификата - Для собственных серверов MySQL или MariaDB, чьи настройки по умолчанию обеспечивают самоподписанный сертификат, который мы не можем проверить (MySQL, MariaDB). Полагание на этот сертификат шифрует данные в пути, но несет риск имитации сервера. Мы рекомендуем использовать правильно подписанные сертификаты в производственной среде, но этот вариант полезен для тестирования на одиночном экземпляре или подключения к устаревшей инфраструктуре.
Поддерживаете ли вы изменения схемы?
Пожалуйста, обратитесь к странице ClickPipes для MySQL: Поддержка распространения изменений схемы для получения дополнительной информации.
Поддерживаете ли вы репликацию каскадных удалений внешних ключей MySQL ON DELETE CASCADE
?
Из-за того, как MySQL обрабатывает каскадные удаления, они не записываются в бинарный лог. Поэтому ClickPipes (или любой инструмент CDC) не может их реплицировать. Это может привести к непоследовательным данным. Рекомендуется использовать триггеры для поддержки каскадных удалений.
Почему я не могу реплицировать свою таблицу, в названии которой есть точка?
У PeerDB в настоящее время есть ограничение, при котором точки в идентификаторах исходной таблицы - то есть в имени схемы или имени таблицы - не поддерживаются для репликации, так как PeerDB не может различить, что является схемой, а что таблицей, поскольку осуждение происходит по точке. Прилагаются усилия для поддержки ввода схемы и таблицы отдельно, чтобы обойти это ограничение.