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

16.1.1.4. Получение Ведущих Двоичных Координат Журнала Репликации

Чтобы сконфигурировать репликацию на ведомом устройстве, следует определить текущие координаты ведущего устройства в пределах его двоичного журнала. Вы будете нуждаться в этой информации так, чтобы, когда ведомое устройство запускает процесс репликации, это было в состоянии начать обрабатывать события от двоичного журнала в корректной точке.

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

Чтобы получить основные двоичные координаты журнала, следуйте за этими шагами:

  1. Запустите сеанс на ведущем устройстве, соединяясь с этим с клиентом командной строки, и сбросьте все таблицы и блокируйте операторы записи, выполняясь FLUSH TABLES WITH READ LOCK оператор:

    mysql> FLUSH TABLES WITH READ
                        LOCK;

    Для InnoDB таблицы, отметьте это FLUSH TABLES WITH READ LOCK также блоки COMMIT операции.

    Предупреждение

    Оставьте клиент, от которого Вы вышли FLUSH TABLES выполнение оператора так, чтобы блокировка чтения осталась в силе. Если Вы выходите из клиента, блокировка выпускается.

  2. В различном сеансе на ведущем устройстве используйте SHOW MASTER STATUS оператор, чтобы определить текущее двоичное имя файла журнала и позицию:

    mysql > SHOW MASTER
                        STATUS;+------------------+----------+--------------+------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000003 | 73       | test         | manual,mysql     |+------------------+----------+--------------+------------------+

    File столбец показывает имя файла журнала и Position показывает позицию в пределах файла. В этом примере двоичный файл журнала mysql-bin.000003 и позиция 73. Запишите эти значения. Вы нуждаетесь в них позже, когда Вы устанавливаете ведомое устройство. Они представляют координаты репликации, в которых ведомое устройство должно начать обрабатывать новые обновления от ведущего устройства.

    Если ведущее устройство работало ранее без двоичного включенного журналирования, имя файла журнала и значения позиции, выведенные на экран SHOW MASTER STATUS или mysqldump - основные данные будут пусты. В этом случае значения, которые Вы должны использовать позже, определяя файл журнала ведомого устройства и позицию, являются пустой строкой ('') и 4.

У Вас теперь есть информация, которую Вы должны позволить ведомому устройству начать читать из двоичного файла, входят в систему корректное место, чтобы запустить репликацию.

Если у Вас есть существующие данные, которые должны быть к синхронизируемому с ведомым устройством прежде, чем Вы запустите репликацию, оставите клиент, работающий так, чтобы блокировка осталась на месте, и затем продолжите к Разделу 16.1.1.5, "Создавая Снимок Данных Используя mysqldump", или Раздел 16.1.1.6, "Создавая Снимок Данных Используя Файлы Необработанных данных". Идея здесь состоит в том, чтобы предотвратить дальнейшие изменения так, чтобы данные, скопированные в ведомые устройства, были в синхронии с ведущим устройством.

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