Spec-Zone .ru
спецификации, руководства, описания, API

17.6.6. Запуск MySQL Cluster Replication (Единственный Канал Репликации)

Этот раздел обрисовывает в общих чертах процедуру для того, чтобы начать репликацию MySQL Cluster, используя единственный канал репликации.

  1. Запустите главный сервер репликации MySQL, давая эту команду:

    shellM> mysqld --ndbcluster --server-id=id
                        \        --log-bin &

    В предыдущем операторе, id уникальный ID этого сервера (см. Раздел 17.6.2, "Общие Требования для MySQL Cluster Replication"). Это запускает процесс mysqld сервера с двоичного файла, регистрирующего включенный использование надлежащего формата журналирования.

    Отметить

    Можно также запустить ведущее устройство с --binlog-format=MIXED, когда построчная репликация используется автоматически, тиражируясь между кластерами. STATEMENT основанное двоичное журналирование не поддерживается для MySQL Cluster Replication (см. Раздел 17.6.2, "Общие Требования для MySQL Cluster Replication").

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

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

    В команде, только показанной, id уникальный ID ведомого сервера. Не необходимо позволить войти в систему ведомое устройство репликации.

    Отметить

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

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

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

    Это дает ведомому устройству команду начинать читать двоичный журнал ведущего устройства из начальной точки журнала. Иначе — то есть, если Вы загружаете данные от ведущего устройства, использующего резервное копирование — видят Раздел 17.6.8, "Реализовывая Failover с MySQL Cluster Replication,", для информации о том, как получить корректные значения, чтобы использовать для MASTER_LOG_FILE и MASTER_LOG_POS в таких случаях.

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

    mysqlS> START SLAVE;

    Это также инициирует передачу данных репликации от ведущего устройства к ведомому устройству.

Также возможно использовать два канала репликации способом, подобным процедуре, описанной в следующем разделе; различия между этим и использованием единственного канала репликации покрываются Разделом 17.6.7, "Используя Два Канала Репликации для MySQL Cluster Replication".

Также возможно улучшить производительность репликации кластера, включая обработанным в пакетном режиме обновлениям. Это может быть выполнено, устанавливая 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)