Сбой репликации mysql

#mysql #mysql-8.0

#mysql #mysql-8.0

Вопрос:

У меня установлена mysql 8.0 с репликацией между 2 серверами в конфигурации master-master. Во время репликации данных с сервера A на сервер B репликация останавливается на несколько часов. Ниже приведен фрагмент для show slave status G на сервере B.

             Master_SSL_Cipher:
           Master_SSL_Key:
    Seconds_Behind_Master: 49808
            Last_IO_Errno: 0
            Last_IO_Error:
           Last_SQL_Errno: 0
           Last_SQL_Error:Replicate_Ignore_Server_Ids:
         Master_Server_Id: 1
         Master_Info_File: mysql.slave_master_info
                SQL_Delay: 0
      SQL_Remaining_Delay: NULL
  Slave_SQL_Running_State: waiting for handler commit
       Master_Retry_Count: 86400
              Master_Bind:
  Last_IO_Error_Timestamp:
 Last_SQL_Error_Timestamp:
           Master_SSL_Crl:
  

После выполнения show processlist; я получаю процесс, который ожидает долгое время, время ожидания составляет 50071 и увеличивается

  system user     |                               | NULL | Query       | 50071 | waiting for handler commit
  

Какие шаги я должен предпринять, чтобы привести мою репликацию в нужное русло?

Ответ №1:

Возникла та же проблема. Добавление:

    innodb_flush_log_at_trx_commit = 2
  

Решил проблему для меня при установке MySQL 8.0.13.
Читайте здесь: https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit

И смотрите также: https://dba.stackexchange.com/questions/232365/mysql-8-0-updates-are-sometimes-stalling