Отправить заявку

Проверка состояния репликации на сервере MySQL

Если вы хотите быть спокойным за свои мастер-слэйв сервера 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
Другие публикации