Реплика MariaDB зависает без ошибок - PullRequest
0 голосов
/ 15 октября 2018

У нас есть некоторые репликационные соединения между mariadb-серверами, большинство из них являются master-slave-соединениями (одинаковые версии на master и slave).Время от времени, но регулярно соединение перестает работать.Но ошибки нет, потоки ввода-вывода и SQL-потока работают.в этих случаях мы замечаем только пропущенные значения на ведомом устройстве, и затем я останавливаюсь и снова запускаю ведомое устройство, и после этого у нас есть Seconds_behind_master> 0, прежде чем нет.Теперь я кое-что узнал о переменной MASTER_HEARTBEAT_PERIOD , но она включена со значением по умолчанию (30 секунд) и, похоже, тоже не работает.В чем может быть причина этого странного поведения?Что мы можем сделать?

РЕДАКТИРОВАТЬ: После некоторого исследования (запланированное событие на ведущем и ведомом: на главном записывает текущую метку времени в таблице, на ведомом сохраняет разницу этой отметки с текущим временем), я обнаружил, что мырегулярно через несколько часов делайте эти остановки рабов.И раб начинает снова через ровно 7200 секунд (2 часа).Это случилось сейчас два раза за 11 часов.Что это может быть?

РЕДАКТИРОВАТЬ2: Дальнейшие исследования показывают, что явление, вероятно, не вызвано mariadb.Я контролировал несколько соединений (описанных в моем первом редактировании), и таким образом я обнаружил, что только репликации с мастерами из виртуальных машин определенного хоста (MS Hyper-V) задерживают, и они задерживают абсолютную синхронизацию.Я думаю, что причина задержек (до 7200 секунд, затем задержки исчезают) должна быть на этом хосте.Но - у нас есть некоторые master-master-репликации с экземплярами на этих виртуальных машинах, но проблема не возникает в этих соединениях.И у нас нет проблем с другими подключениями репликации на нашей ведомой виртуальной машине от виртуальных машин с других хостов.Странно.

EDIT3: Ну, это, вероятно, не проблема DNS.Несколько дней назад я переключил все главные адреса на ip и установил skip_no_resolve.Но ничего не изменилось.Есть два основных раза в день, когда это происходит каждый раз (около 05:58 и 10:15).Интересно, что первый раз (05:58) является относительно постоянным, но второй раз (10:15) происходит примерно на 30 секунд в будущем каждый день (с 10:11 19.10 до 10:19).И, что интересно, ночью с 27 на 28.10.у нас было изменение во времени (лето на зимнее время, + 1 час), изменился и второй раз (10:15) (до 28.10. это было каждые 11:15, теперь это примерно каждые 10:15).Первый раз 05:58 не изменился.И (я знаю, я должен был сделать это давным-давно) У меня есть в журнале ошибок mysql каждый раз 2 записи:

2018-11-06 10:19:50 6172 [ERROR] Error reading packet from server: Lost connection to MySQL server during query (server_errno=2013)

2018-11-06 10:19:50 6172 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.002007' at position 113739713

Ну, что-то позволяет репликации останавливаться два раза в день (около 03:58 и 08:15) без каких-либо ошибок, почти одинаково, но во второй раз примерно через 20-30 секунд каждый день, и через 2 часа mariadb узнает оэто, печатает эти 2 сообщения в журнал и повторно подключает подчиненное устройство.Я беспомощен.

1 Ответ

0 голосов
/ 22 ноября 2018

Теперь мы решили проблему.Мы обновили mariadb с версии 10.1.X до 10.3.7, и проблема исчезла.У нас есть несколько экземпляров mariadb с разными версиями, и проблема возникала только в версиях 10.1.X, но не во всех.И я все еще думаю, что причина задержек пришла из-за пределов Мариадб, и все же мы не имеем ни малейшего представления, какова может быть причина.Но теперь это больше не наша проблема.Обновление решило это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...