Если вы хотите быть спокойным за свои мастер-слэйв сервера MySQL - вам необходимо следить за состоянием репликации.
Нужно проверять, что репликация происходит без каких-либо ошибочных записей в логи. Главной командой для этой проверки, является команда SHOW SLAVE STATUS
, которая выполняется на каждом слэйв-сервере.
mysql> SHOW SLAVE STATUS
Рассмотрим следующие ключевые поля из отчета о состоянии:
- Slave_IO_State - текущее состояние слэйв-сервера;
- Slave_IO_Running - работает ли поток ввода/вывода чтения бинарного журнала мастер-сервера. Нормальное значение
Yes
, за исключением, когда Вы еще не запускали репликацию, либо остановили ее командойSTOP SLAVE
; - Slave_SQL_Running - работает ли поток SQL запросов. Как и в предыдущем случае, нормальным значением является
Yes
; - Last_IO_Error, Last_SQL_Error - последние ошибки зарегистрированные потоками ввода/вывода и SQL. В идеале, должны быть пустыми, что означает отсутствие ошибок;
- Seconds_Behind_Master - число в секундах, означающая время отставания слэйв-сервера от мастер-сервера. Большое значение (или его увеличение) говорит о том, что слэйв-сервер не может своевременно обрабатывать события приходящие от мастер-сервера.
Есть поля, которые показывают информацию о ходе чтения и выполнения слэйв-сервером событий из бинарного журнала мастер-сервера:
- Master_Log_file, Read_Master_Log_Pos - показывает как далеко продвинулся слэйв-сервер в чтении бинарного журнала мастер-сервера;
- Relay_Master_Log_File, Exec_Master_Log_Pos - показывает как далеко продвинулся слэйв-сервер в выполнении SQL событий, полученных из бинарного журнала мастер-сервера;
- Relay_Log_File, Relay_Log_Pos - показывает как далеко продвинулся слэйв-сервер исходя из информации полученной с собственного бинарного журнала.
На слэйв-сервере можно просмотреть текущие процессы, используя команду:
mysql> SHOW PROCESSLIST
На мастер-сервере можно проверить статус подключенных слэйв-серверов, также используя для вывода текущих процессов:
mysql> SHOW PROCESSLIST