Справочное руководство по MySQL версии 4.1.1-alpha



         

Глава 4.10.7 Часто задаваемые вопросы по репликации


Вопрос: Как сконфигурировать подчиненный сервер, если головной сервер уже запущен, и я не хочу его останавливать?

Ответ: Есть несколько возможностей. Если имеется резервная копия головного сервера в некоторой точке, имя двоичного журнала и сдвиг (от вывода SHOW MASTER STATUS), соответствующий образу, выполните следующие действия:

  • Удостоверьтесь, что подчиненному серверу назначен уникальный идентификатор.

  • Выполните команды CHANGE MASTER TO MASTER_HOST='master-host-name', MASTER_USER='master-user-name', MASTER_PASSWORD='master-pass', MASTER_LOG_FILE='recorded-log-name', MASTER_LOG_POS=recorded_log_pos

  • Выполните команду SLAVE START

    Если нет резервной копии головного сервера, существует быстрый способ создать ее в той же последовательности действий:

      FLUSH TABLES WITH READ LOCK

    • gtar zcf /tmp/backup.tar.gz /var/lib/mysql (или разновидность данной команды)

    • SHOW MASTER STATUS - удостоверьтесь в том что вывод этой команды сохранен - он пригодится позже

    • UNLOCK TABLES

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

      В версии 4.0.0 и выше можно также использовать команду LOAD DATA FROM MASTER. Это удобная команда, которая создает образ, восстанавливает его на подчиненном сервере и сразу же корректирует имя журнала и сдвиг на подчиненном сервере. Именно команду LOAD DATA FROM MASTER можно рекомендовать как способ установки подчиненного сервера. Имейте в виду, однако, что при использовании данной команды чтение может быть блокировано на долгое время. В настоящее время эта команда еще не реализована настолько эффективно, как бы нам хотелось. Если имеются большие таблицы, пока лучше использовать локальный архив tar после выполнения команды FLUSH TABLES WITH READ LOCK.




      Содержание  Назад  Вперед