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

16.1.1.8. Установка Репликации с Существующими Данными

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

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

  1. С ведущим выполнением MySQL создайте пользователя, чтобы использоваться ведомым устройством, соединяясь с ведущим устройством во время репликации. См. Раздел 16.1.1.3, "Создавая Пользователя для Репликации".

  2. Если Вы уже не сконфигурировали server-id и включал двоичному файлу, входящему в систему главный сервер, Вы должны будете завершить работу этого, чтобы сконфигурировать эти опции. См. Раздел 16.1.1.1, "Устанавливая Ведущую Конфигурацию Репликации".

    Если необходимо завершить работу своего главного сервера, это - хорошая возможность взять снимок ее баз данных. Следует получить основное состояние (см. Раздел 16.1.1.4, "Получая Ведущие Двоичные Координаты Журнала Репликации") перед приведением в нерабочее состояние ведущего устройства, обновлением конфигурации и взятием снимка. Для получения информации о том, как создать снимок, используя файлы необработанных данных, см. Раздел 16.1.1.6, "Создавая Снимок Данных Используя Файлы Необработанных данных".

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

  4. Обновите конфигурацию ведомого устройства. См. Раздел 16.1.1.2, "Устанавливая Ведомую Конфигурацию Репликации".

  5. Следующий шаг зависит от того, как Вы создали снимок данных на ведущем устройстве.

    Если Вы использовали mysqldump:

    1. Запустите ведомое устройство, используя --skip-slave-start опция так, чтобы репликация не запустилась.

    2. Импортируйте файл дампа:

      shell> mysql <
                                      fulldb.dump

    Если Вы создали снимок, используя файлы необработанных данных:

    1. Извлеките файлы данных в свой ведомый каталог данных. Например:

      shell> tar xvf
                                      dbdump.tar

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

    2. Запустите ведомое устройство, используя --skip-slave-start опция так, чтобы репликация не запустилась.

  6. Сконфигурируйте ведомое устройство с координатами репликации от ведущего устройства. Это говорит ведомому устройству двоичный файл журнала и позицию в пределах файла, где репликация должна запуститься. Кроме того, сконфигурируйте ведомое устройство с учетными данными входа в систему и именем хоста ведущего устройства. Для получения дополнительной информации по CHANGE MASTER TO требуемый оператор, см. Раздел 16.1.1.10, "Устанавливая Основную Конфигурацию на Ведомом устройстве".

  7. Запустите ведомые потоки:

    mysql> START SLAVE;

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

Если Вы забыли устанавливать server-id опция для ведущего устройства, ведомые устройства не могут соединиться с этим.

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

Warning: You should set server-id to a non-0 value if master_hostis set; we will force server id to 2, but this MySQL server willnot act as a slave.

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

Ведомое устройство использует информацию, хранившую в ее основном репозитарии информации, чтобы отследить то, сколько из двоичного журнала ведущего устройства это обработало. Репозитарий может быть в форме файлов или таблицы, как определено набором значений для --master-info-repository. Когда ведомое устройство работает с --master-info-repository=FILE, можно найти в его каталоге данных два файла, названные master.info и relay-log.info. Если --master-info-repository=TABLE вместо этого, эта информация сохраняется в таблице master_slave_info в mysql база данных. Или в случае, не удаляйте или редактируйте файлы или таблицу, если Вы не знаете точно, что Вы делаете и полностью понимаете импликации. Даже в этом случае это предпочитается, что Вы используете CHANGE MASTER TO оператор, чтобы изменить параметры репликации. Ведомое устройство может использовать значения, определенные в операторе, чтобы обновить файлы состояния автоматически. См. Раздел 16.2.2, "Реле репликации и Журналы Состояния", для получения дополнительной информации.

Отметить

Содержание основного репозитария информации переопределяет некоторые из параметров сервера, определенных на командной строке или в my.cnf. См. Раздел 16.1.4, "Репликация и Двоичные Опции Журналирования и Переменные", для большего количества деталей.

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