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

Amazon RDS MySQL

Экспериментальная функция

Непрерывная загрузка Doris является экспериментальной функцией и поддерживается начиная с Doris 4.1.5.

Потоковая загрузка Doris поддерживает синхронизацию данных из Amazon RDS MySQL. Совместимые версии включают MySQL 5.6, 5.7 и 8.0.x. Перед запуском задачи синхронизации необходимо убедиться, что в экземпляре RDS включен Binlog и журналы изменений записываются в правильном формате.

Этот документ предназначен для пользователей, которым необходимо синхронизировать данные из Amazon RDS MySQL в Doris с помощью потоковой загрузки (CDC). В нем приведены все необходимые предварительные настройки в порядке, соответствующем сценарию.

Контрольный список предварительных условий​

Перед началом работы убедитесь, что выполнены следующие условия:

Проверяемый элементОжидаемое значениеОписание
log_binONBinlog включен
binlog_formatROWИзменения записываются в построчном режиме
binlog_row_imageFULLЗаписывается полный образ строки
Пользователь синхронизацииСозданИмеет привилегии SELECT, REPLICATION SLAVE и REPLICATION CLIENT
Срок хранения BinlogНе менее 72 часовПредотвращает преждевременную очистку журналов, которая может прервать синхронизацию

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

Шаг 1: Проверка текущей конфигурации Binlog​

Цель: подтвердить текущий статус Binlog экземпляра RDS и определить, требуется ли изменить группу параметров.

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

-- Check if binlog is enabled
SHOW VARIABLES LIKE 'log_bin';

-- Check binlog format
SHOW VARIABLES LIKE 'binlog_format';

-- Check binlog row image
SHOW VARIABLES LIKE 'binlog_row_image';

Интерпретация результатов:

Шаг 2: Создание и настройка группы параметров​

Цель: создать пользовательскую группу параметров в консоли AWS и настроить параметры, связанные с Binlog, в соответствии с требованиями потоковой загрузки Doris.

Выполните следующие действия:

  1. Войдите в консоль AWS RDS.

  2. На левой панели навигации выберите Группы параметров и нажмите Создать группу параметров.

  3. Выберите соответствующее семейство версий MySQL и создайте новую группу параметров.

  4. Отредактируйте группу параметров, найдите binlog_format и установите для него значение ROW:

    Настройка формата MySQL Binlog

  5. Аналогичным образом найдите binlog_row_image и установите для него значение FULL.

  6. Нажмите Сохранить изменения.

Ниже приведены параметры, которые необходимо изменить:

ПараметрЦелевое значениеНазначение
binlog_formatROWЗаписывает изменения данных на уровне строк, что требуется для синхронизации CDC
binlog_row_imageFULLЗаписывает полные данные строки до и после каждого изменения

Шаг 3: Применение группы параметров и перезапуск экземпляра​

Цель: привязать новую группу параметров к целевому экземпляру RDS и применить конфигурацию путем перезапуска.

Выполните следующие действия:

  1. В консоли RDS выберите целевой экземпляр и нажмите Изменить.
  2. В разделе Группа параметров БД выберите созданную группу параметров.
  3. Выберите Применить немедленно, чтобы применить изменение сразу.
  4. Перезапустите экземпляр RDS, чтобы конфигурация вступила в силу.
предупреждение

Для применения изменения параметра binlog_format требуется перезапустить экземпляр RDS. Выполняйте эту операцию в часы низкой нагрузки.

Шаг 4: Создание пользователя синхронизации​

Цель: создать специальную учетную запись для потоковой загрузки Doris, следуя принципу наименьших привилегий.

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

    CREATE USER 'doris_sync'@'%' IDENTIFIED BY '<password>';
  2. Предоставьте привилегии, необходимые для синхронизации:

    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'doris_sync'@'%';

Описание необходимых привилегий:

ПривилегияНазначение
SELECTЧитает существующие данные (этап полной загрузки)
REPLICATION SLAVEИзвлекает Binlog в качестве реплики
REPLICATION CLIENTЗапрашивает состояние Binlog на основном сервере

Шаг 5: Настройка срока хранения Binlog​

Цель: по умолчанию Amazon RDS MySQL удаляет двоичные журналы при первой возможности. Рекомендуется установить срок хранения Binlog не менее 72 часов, чтобы файлы Binlog, используемые для репликации, оставались доступными в сценариях сбоя.

Для настройки срока хранения используйте хранимую процедуру mysql.rds_set_configuration:

CALL mysql.rds_set_configuration('binlog retention hours', 72);
предупреждение

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

Часто задаваемые вопросы (FAQ)​

В1: Обязательно ли перезапускать экземпляр после изменения binlog_format?

Да. binlog_format является статическим параметром, поэтому для его применения требуется перезапуск экземпляра RDS. Выполняйте операцию в часы низкой нагрузки.

В2: Почему binlog_row_image необходимо установить в FULL?

Для корректного восстановления операций UPDATE и DELETE потоковой загрузке Doris необходимы полные данные строки до и после каждого изменения. Значения MINIMAL или NOBLOB приведут к ошибкам синхронизации или неполным данным.

В3: Можно ли повторно использовать одну группу параметров для нескольких экземпляров RDS?

Да. Несколько экземпляров RDS в одном семействе версий могут использовать одну группу параметров, если для всех требуется одинаковая конфигурация Binlog.

В4: Можно ли установить более длительный срок хранения Binlog?

Да. Параметр binlog retention hours поддерживает значения от 1 до 168 часов (до 7 дней). Более длительный срок хранения увеличивает окно восстановления, но требует больше места в хранилище.

Устранение неполадок​

СимптомВозможная причинаРешение
SHOW VARIABLES LIKE 'log_bin' возвращает OFFДля экземпляра не включено автоматическое резервное копирование, поэтому Binlog не включенВключите автоматическое резервное копирование экземпляра в консоли RDS; после этого Binlog будет включен автоматически
После изменения binlog_format остается MIXED или STATEMENTЭкземпляр не был перезапущен или привязана неправильная группа параметровУбедитесь, что привязана новая группа параметров, затем перезапустите экземпляр
Синхронизация Doris сообщает об ошибке binary log not foundBinlog был очищенУвеличьте значение binlog retention hours и перезапустите задачу синхронизации Doris
Пользователь синхронизации не может подключитьсяНеверен список разрешенных хостов или парольПроверьте, соответствует ли квалификатор хоста в 'doris_sync'@'%' исходящему IP-адресу узла Doris
Ошибки недостаточных привилегийОтсутствуют такие привилегии, как REPLICATION SLAVEПовторно выполните инструкцию GRANT из шага 4