25.7.6 Запуск репликации кластера NDB (один канал репликации)
В этом разделе описана процедура запуска репликации кластера NDB с использованием одного канала репликации.
-
Запустите сервер источника MySQL репликации, выполнив следующую команду, где
id— уникальный идентификатор этого сервера (см. Раздел 25.7.2, «Общие требования к репликации кластера NDB»):shell
S>mysqld --ndbcluster --server-id=id\--log-bin --ndb-log-bin &Это запускает процесс mysqld сервера с включенным бинарным протоколированием с использованием правильного формата протоколирования. Также необходимо явно включить протоколирование обновлений в
NDBтаблицы, используя опцию--ndb-log-bin.ПримечаниеВы также можете запустить источник с
--binlog-format=MIXED, в этом случае по умолчанию будет использоваться строчная репликация при репликации между кластерами. Протоколирование бинарных заявлений для репликации кластера NDB не поддерживается (см. Раздел 25.7.2, «Общие требования к репликации кластера NDB»). -
Запустите сервер реплики MySQL, как показано здесь:
shell
R>mysqld --ndbcluster --server-id=id&В приведенной команде
id— уникальный идентификатор сервера реплики. Включённое протоколирование на сервере реплики не требуется.ПримечаниеЕсли вы не хотите, чтобы репликация началась немедленно, задержите запуск потоков репликации до выполнения соответствующего
START REPLICAоператора, как объяснено в шаге 4 ниже. Вы можете сделать это, запустив реплику с--skip-replica-start. -
Необходимо синхронизировать сервер реплики с бинарным журналом репликации сервера источника. Если бинарное протоколирование ранее не работало на источнике, выполните следующий оператор на реплике:
mysql
R>CHANGE REPLICATION SOURCE TO->SOURCE_LOG_FILE='',->SOURCE_LOG_POS=4;Это указывает реплике начать чтение бинарного журнала сервера источника с начальной точки журнала. В противном случае — если вы загружаете данные с источника с помощью резервной копии — см. Раздел 25.7.8, «Реализация резервного копирования с репликацией кластера NDB» для получения информации о правильных значениях для использования
SOURCE_LOG_FILEиSOURCE_LOG_POSв таких случаях. -
Наконец, укажите реплике начать применение репликации, выполнив эту команду из клиента mysql на реплике:
mysql
R>START REPLICA;Это также инициирует передачу данных и изменений с источника на реплику.
Также возможно использовать два канала репликации, аналогично процедуре, описанной в следующем разделе; различия между этим и использованием одного канала репликации описаны в Разделе 25.7.7, «Использование двух каналов репликации для репликации кластера NDB».
Также можно улучшить производительность репликации кластера, включив пакетированные обновления. Этого можно добиться, установив системную переменную replica_allow_batching в процессах mysqld реплик. Обычно обновления применяются сразу после их получения. Однако при использовании пакетной обработки обновления применяются группами по 32 КБ; это может привести к более высокой пропускной способности и меньшей загрузке процессора, особенно в тех случаях, когда отдельные обновления относительно невелики.
Пакетная обработка работает на основе эпохи; обновления, относящиеся к нескольким транзакциям, могут быть отправлены в составе одной группы.
Все ожидающие обновления применяются по достижении конца эпохи, даже если общее количество обновлений меньше 32 КБ.
Пакетную обработку можно включать и отключать во время работы.
SET GLOBAL replica_allow_batching = 1;
SET GLOBAL replica_allow_batching = ON;
Если определённая группа вызывает проблемы (например, оператор, эффекты которого, по-видимому, не реплицируются корректно), пакетную обработку можно отключить, используя любой из следующих операторов:
SET GLOBAL replica_allow_batching = 0;
SET GLOBAL replica_allow_batching = OFF;
Вы можете проверить, используется ли в данный момент пакетная обработка, с помощью соответствующего оператора SHOW VARIABLES, например:
mysql> SHOW VARIABLES LIKE 'replica%';
© 2025 Oracle
Licensed under the GPLv2 License.