30 декабря 2010

Управление репликацией в MySQL

Статус slave сервера отображается командой SHOW SLAVE STATUS;
Ведение бинарного лога ведется с самого старта сервера. Можно отключить ведение бин. лога командой SET sql_log_bin=0; (полезно для временного отключения, чтобы SQL команда не попала на слейвы). Запуском и остановкой slave-режима можно упралять с помощью команд START SLAVE и STOP SLAVE.

После команды STOP SLAVE, слейв сервер перестает принимать бинарный лог с мастера и любая статистика, которая видна по команде SHOW SLAVE STATUS, замораживается.
После команды START SLAVE, с мастера подтягивается весь бинарный лог начиная с позиции, которая была указана в поле Read_Master_Log_Pos, и автоматически выполняются все полученные команды.

Содержимое бинарного лога можно просмотреть с помощью команды mysqlbinlog. Например: mysqlbinlog ./mysql-bin.000012. Эта консольная утилита поддерживает немало полезных опций. Файлы бинарных логов постоянно ротируются, и для того, чтобы посмотреть текущий файл в который происходит запись, нужно воспользоваться SQL командой SHOW MASTER STATUS; помимо файла, в результате отобразится текущая позиция бинарного лога. Все бинарные логи на мастере можно увидеть с помощью команды SHOW BINARY LOGS;

Командой \h master в консоле MySQL можно увидеть все SQL команды, которые относятся к master-режиму.
Командой \h slave в консоле MySQL можно увидеть все SQL команды, которые относятся к slave-режиму.

Комментариев нет: