#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