Мы создали репликацию базы данных около недели назад, и у нас возникла проблема с ее синхронизацией.
Установкой является репликация мастер-мастер с MariaDB 10.1.35 / MySQL 5.5.5. Для звонков используется только одна база данных. Другая база данных будет использоваться только в качестве резервной копии. Я буду называть это рабом. И с этим рабом у нас проблемы. Репликация основана на утверждениях.
Первые 24 часа прошли нормально. На следующий день раб все больше и больше отставал, вплоть до почти 24 часов. Когда мы проверили 24 часа спустя, раб снова вернулся на трассу, отстав от мастера на несколько секунд.
Теперь опять все больше и больше отстаёт (больше 5 часов данных).
Он все еще синхронизируется, поэтому сама репликация работает. Тем не менее, некоторые запросы просто слишком долго работают на ведомом устройстве, что задерживает все.
Все запросы выполняются довольно быстро, за исключением одного запроса ОБНОВЛЕНИЕ. Это тот, который остается в списке процессов в течение 5, 10, а иногда даже 20 или 30 секунд. Запрос обрабатывается менее чем за секунду на ведущем устройстве, а также, когда мы выполняем этот запрос вручную на ведомом устройстве, он занимает не больше секунды. Итак, мы не думаем, что это связано с самим запросом. Структура обеих баз данных / таблиц абсолютно одинакова. Механизм хранения таблицы InnoDB.
На данный момент мы понятия не имеем, что может быть причиной этой задержки. Вставки обрабатываются мгновенно.
Существует одно отличие в списке процессов, когда запрос выполняется на ведомом устройстве; команда остается на «Соединить», в то время как команда говорит «Выполнить» на ведущем устройстве. Это нормальное поведение?
Если я должен предоставить больше информации, пожалуйста, дайте мне знать. Понятно, что ведомое устройство обрабатывает только один запрос за раз, и поэтому оно может отставать, если на главном сервере много запросов, но он не должен быть обязательным, чтобы этот запрос занимал до 30 секунд, в то время как он занимает меньше один при выполнении вручную.
Спасибо.
P.S. Мы уже оптимизировали таблицу (OPTIMIZE), но, к сожалению, это не имело значения.