Spec-Zone.ru › MySQL 5.7

21.7.6 Начало репликации кластера NDB (один канал репликации)

В этом разделе описана процедура запуска репликации кластера NDB с использованием одного канала репликации.

  1. Запустите сервер источника репликации MySQL, выполнив эту команду, где id — уникальный идентификатор этого сервера (см. Раздел 21.7.2, «Общие требования к репликации кластера NDB»):

    shellS> mysqld --ndbcluster --server-id=id \
            --log-bin --ndb-log-bin &
    

    Это запускает процесс mysqld сервера с включенным двоичным протоколированием в соответствии с правильным форматом протоколирования.

    Примечание

    Вы также можете запустить источник с --binlog-format=MIXED, в этом случае по умолчанию используется строчная репликация при репликации между кластерами. Двоичное протоколирование на основе операторов не поддерживается для репликации кластера NDB (см. Раздел 21.7.2, «Общие требования к репликации кластера NDB»).

  2. Запустите сервер реплики MySQL, как показано здесь:

    shellR> mysqld --ndbcluster --server-id=id &
    

    В только что показанной команде id — уникальный идентификатор сервера реплики. Включение протоколирования на реплике не обязательно.

    Примечание

    Вы должны использовать опцию --skip-slave-start с этой командой или же включить skip-slave-start в файл конфигурации my.cnf сервера реплики, если вы не хотите, чтобы репликация начиналась немедленно. Используя эту опцию, запуск репликации откладывается до момента, когда будет выдан соответствующий оператор START SLAVE, как описано в шаге 4 ниже.

  3. Необходимо синхронизировать сервер реплики с двоичным журналом репликации сервера источника. Если двоичное протоколирование ранее не работало на источнике, выполните следующий оператор на реплике:

    mysqlR> CHANGE MASTER TO
         -> MASTER_LOG_FILE='',
         -> MASTER_LOG_POS=4;
    

    Это указывает реплике начать чтение двоичного журнала сервера источника с точки его начала. В противном случае (если вы загружаете данные из источника с помощью резервной копии) см. Раздел 21.7.8, «Реализация резервного копирования с репликацией кластера NDB» для получения информации о том, какие значения следует использовать для MASTER_LOG_FILE и MASTER_LOG_POS в таких случаях.

  4. Наконец, дайте указание реплике начать применение репликации, выполнив эту команду из клиента mysql на реплике:

    mysqlR> 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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/mysql-cluster-replication-starting.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API