21.7.6 Начало репликации кластера NDB (один канал репликации)
В этом разделе описана процедура запуска репликации кластера NDB с использованием одного канала репликации.
-
Запустите сервер источника репликации MySQL, выполнив эту команду, где
id— уникальный идентификатор этого сервера (см. Раздел 21.7.2, «Общие требования к репликации кластера NDB»):shell
S>mysqld --ndbcluster --server-id=id\--log-bin --ndb-log-bin &Это запускает процесс mysqld сервера с включенным двоичным протоколированием в соответствии с правильным форматом протоколирования.
ПримечаниеВы также можете запустить источник с
--binlog-format=MIXED, в этом случае по умолчанию используется строчная репликация при репликации между кластерами. Двоичное протоколирование на основе операторов не поддерживается для репликации кластера NDB (см. Раздел 21.7.2, «Общие требования к репликации кластера NDB»). -
Запустите сервер реплики MySQL, как показано здесь:
shell
R>mysqld --ndbcluster --server-id=id&В только что показанной команде
id— уникальный идентификатор сервера реплики. Включение протоколирования на реплике не обязательно.ПримечаниеВы должны использовать опцию
--skip-slave-startс этой командой или же включитьskip-slave-startв файл конфигурацииmy.cnfсервера реплики, если вы не хотите, чтобы репликация начиналась немедленно. Используя эту опцию, запуск репликации откладывается до момента, когда будет выдан соответствующий операторSTART SLAVE, как описано в шаге 4 ниже. -
Необходимо синхронизировать сервер реплики с двоичным журналом репликации сервера источника. Если двоичное протоколирование ранее не работало на источнике, выполните следующий оператор на реплике:
mysql
R>CHANGE MASTER TO->MASTER_LOG_FILE='',->MASTER_LOG_POS=4;Это указывает реплике начать чтение двоичного журнала сервера источника с точки его начала. В противном случае (если вы загружаете данные из источника с помощью резервной копии) см. Раздел 21.7.8, «Реализация резервного копирования с репликацией кластера NDB» для получения информации о том, какие значения следует использовать для
MASTER_LOG_FILEиMASTER_LOG_POSв таких случаях. -
Наконец, дайте указание реплике начать применение репликации, выполнив эту команду из клиента mysql на реплике:
mysql
R>START SLAVE;Это также инициирует передачу данных и изменений от источника к реплике.
Также возможно использование двух каналов репликации, аналогично процедуре, описанной в следующем разделе; различия между этим и использованием одного канала репликации описаны в Разделе 21.7.7, «Использование двух каналов репликации для репликации кластера NDB».
Также можно повысить производительность репликации кластера, включив пакетные обновления. Это можно сделать, установив системную переменную slave_allow_batching в процессах mysqld реплик. Обычно обновления применяются сразу после получения. Однако при использовании пакетной обработки обновления применяются партиями по 32 КБ; это может привести к более высокой пропускной способности и меньшей загрузке процессора, особенно при относительно небольших отдельных обновлениях.
Пакетная обработка работает на основе эпохи; обновления, относящиеся к нескольким транзакциям, могут быть отправлены в одной партии.
Все необработанные обновления применяются по завершении эпохи, даже если их общий объем меньше 32 КБ.
Пакетную обработку можно включать и отключать во время работы.
SET GLOBAL slave_allow_batching = 1;
SET GLOBAL slave_allow_batching = ON;
Если какая-либо конкретная партия вызывает проблемы (например, оператор, эффекты которого не кажутся реплицированными должным образом), пакетную обработку можно отключить, используя любой из следующих операторов:
SET GLOBAL slave_allow_batching = 0;
SET GLOBAL slave_allow_batching = OFF;
Вы можете проверить, используется ли в настоящее время пакетная обработка, используя соответствующий оператор SHOW VARIABLES, например:
mysql> SHOW VARIABLES LIKE 'slave%';
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| slave_allow_batching | ON |
| slave_compressed_protocol | OFF |
| slave_load_tmpdir | /tmp |
| slave_net_timeout | 3600 |
| slave_skip_errors | OFF |
| slave_transaction_retries | 10 |
+---------------------------+-------+
6 rows in set (0.00 sec)
© 2025 Oracle
Licensed under the GPLv2 License.