MySQL - ведомый поток SQL не применяет изменения

У меня есть реплика master/slave с 5 ведомыми и 1 master. Ведущий - mysql 5.1.37, а ведомые - 5.5.8.

Два дня назад один из рабов перестал работать. В "show slave status" я вижу, что поток IO и поток SQL работают. Поток ввода-вывода генерирует файлы релейного журнала, но поток SQL не применяет изменения... "Секунды позади мастера" показывают "0", хотя я знаю, что это далеко позади (Проверка binlog, используя mysqlbinlog).

Все остальные рабы работают нормально.

Не знаю, что искать (нет ошибок в файле журнала mysql и нет ошибок в системных журналах...)

любой совет? См. Ниже вывод статуса ведомого

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: master-db
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.020839
          Read_Master_Log_Pos: 56173153
               Relay_Log_File: research-relay-bin.000002
                Relay_Log_Pos: 252
        Relay_Master_Log_File: mysql-bin.020828
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: db1,db2,db3,db4
          Replicate_Ignore_DB: db5,db6
           Replicate_Do_Table:
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 975734937
              Relay_Log_Space: 10714389571
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 300

1 ответ

Есть некоторые причуды, на которые нужно обратить внимание в MySQL Replication

1) Использование replicate-do-db и replicate-ignore-db одновременно

На странице есть блок-схема, показывающая порядок обработки. Лично я не использую replicate-do-db и replicate-ignore-db одновременно. Я использую один или другой. Если другие рабы не имеют такой же проблемы, исключите это.

2) ЗАГРУЗКА ДАННЫХ INFILE

То, как MySQL Replication справляется с этим, ужасно. Всякий раз, когда ЗАГРУЗКА ДАННЫХ INFILE выполняется в Мастере, весь входной файл помещается в двоичные журналы Мастера. Подчиненный собирает во входном файле в своих журналах реле. Ведомое устройство повторно материализует файл данных в папке / tmp, а затем выполняет LOAD DATA INFILE на ведомом устройстве. Это не считается задержкой репликации во время этого процесса. Как администратор БД MySQL, я знаю, что это работает, но это безвкусно!!!

3) Разрыв связи подчиненного потока ввода-вывода

Иногда из-за изменений брандмауэра, сетевой маршрутизации или некоторых других сетевых аномалий поток подчиненного ввода-вывода может просто перестать получать записи для заполнения своих журналов ретрансляции. Вы также можете проверить, что поток ведомого ввода-вывода виден в списке процессов мастера. Чтобы убедиться, что поток ввода-вывода вашего ведомого устройства жив, просто выполните следующие действия для всех ведомых устройств:

SHOW SLAVE STATUS\G

Следите за Relay_Log_Space. Это должно расти. Если он перестает расти, MySQL может просто зависнуть без ошибки по другой безумной причине, что приводит к предложению № 4.

4) Раб находится вне дискового пространства

Я написал пост о том, как MySQL зависает при выполнении операции MyISAM. MySQL использует таблицы MyISAM в качестве временных таблиц. Проверьте ваш каталог таблиц tmp по умолчанию (переменная tmpdir в MySQL)

Я надеюсь, что эти предложения помогут!!!

Другие вопросы по тегам