MySQL и MariaDB LinuxWindowsMySQL Server

MySQL: Реплика MySQL перестала применять события после сбоя

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

После аварии источник MySQL может быть доступен, но реплика перестаёт применять изменения. Нужно отделить обрыв связи от ошибки SQL-потока и выяснить точный номер события, а не пропускать его автоматически.

В этой статье
  1. Как проявляется проблема и где искать причину
  2. Пошаговая диагностика и устранение
  3. Как проверить результат
  4. Если исправление не помогло

#Как проявляется проблема и где искать причину

После аварии источник MySQL может быть доступен, но реплика перестаёт применять изменения. Нужно отделить обрыв связи от ошибки SQL-потока и выяснить точный номер события, а не пропускать его автоматически.

Возможная причинаКак узнатьЧто делать
Остановлен поток примененияРеплика прочла события, но не смогла выполнить операциюReplica_IO_Running=Yes и Replica_SQL_Running=NoПосмотреть Last_SQL_Error и проблемное событие
Ошибка полученияРеплика не подключена к источникуReplica_IO_Running=Connecting/NoПроверить сеть, сертификаты, учётную запись

#Пошаговая диагностика и устранение

  1. 1. Убедитесь, что работаете именно на репликеПодключитесь к MySQL на реплике с учётной записью мониторинга. Проверьте сервер, версию и роль инстанса, чтобы не выполнять дальнейшие действия на источнике по ошибке.
  2. mysql-клиент, чтение; идентификатор источника должен отличаться
    SQLКоманда
    mysql-клиент, чтение; идентификатор источника должен отличаться.
    SELECT @@hostname, @@server_uuid, VERSION();
  1. 2. Получите состояние потоковДля MySQL 8.0.22+ и 8.4 выполните SHOW REPLICA STATUS\G в клиенте mysql; в более старых версиях возможен SHOW SLAVE STATUS\G. Найдите Replica_IO_Running, Replica_SQL_Running, Last_IO_Error и Last_SQL_Error.
    SQLКоманда
    Именно mysql CLI поддерживает разделитель \G; нужны права REPLICATION CLIENT.
    SHOW REPLICA STATUS\G
  1. 3. Отличите проблему сети от примененияЕсли поток IO не получает данные, проверьте имя источника, доступность порта и авторизацию репликации по политике безопасности. Если IO=Yes, SQL=No, не тратьте время на DNS: прочитайте код Last_SQL_Errno и текст ошибки.
  1. 4. Для параллельной репликации откройте ошибки исполнителейНа MySQL 8.0+ проверьте performance_schema.replication_applier_status_by_worker. Сопоставьте CHANNEL_NAME, WORKER_ID, LAST_ERROR_NUMBER и LAST_ERROR_MESSAGE; у каждого канала/потока может быть отдельная причина.
  2. Чтение, требуется доступ к performance_schema; формат зависит от версии
    SQLКоманда
    Чтение, требуется доступ к performance_schema; формат зависит от версии.
    SELECT CHANNEL_NAME, WORKER_ID, LAST_ERROR_NUMBER, LAST_ERROR_MESSAGE FROM performance_schema.replication_applier_status_by_worker;
  1. 5. Сохраните состояние и резервную копиюПеред изменениями сохраните вывод статуса в закрытый журнал, снимок данных реплики согласованным способом и настройки GTID. Не копируйте пароль подключения, полученный из секретного хранилища. Определите, может ли реплика безопасно отставать во время диагностики.
  1. 6. Исправьте конкретную первопричину в тестеПри ошибке отсутствующей таблицы/уникального ключа сравните схему и данные реплики с источником; при повреждении relay log — уточните стратегию восстановления из нового согласованного снимка. Не удаляйте строку вручную и не пропускайте транзакцию без подтверждения DBA.
  1. 7. Возобновите применение только после решенияАдминистратор после исправления причины может выполнить START REPLICA, если состояние и координаты корректны. Нельзя запускать вслепую, когда данные разошлись или источник перезаписывался.
    SQLС осторожностью
    Только DBA после проверки целостности; запускает потоки репликации.
    START REPLICA;

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. 8. Убедитесь, что данные действительно синхронизируютсяПовторите SHOW REPLICA STATUS, убедитесь, что потоки Yes, ошибок нет, а контрольная транзакция с источника появляется на реплике. Seconds_Behind_Source само по себе не гарантирует равенство данных.

#Как проверить результат

Реплика получает и применяет новые транзакции без ошибок; контрольные записи совпадают с источником, известное отставание уменьшается.

#Если исправление не помогло

Если источник и реплика расходятся по ключам/GTID, требуется согласованная пересборка реплики; не маскируйте расхождение пропуском событий.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.