LINUX.ORG.RU

Почему может отличаться ответ на мастере и слейве MySQL?

 


0

1

Есть мастер, к нему прикреплены два слейва в режиме read-only. Данные на слейвы заливались снапшотом. Сначала через xtrabackup снимаю снапшот базы, потом перекачиваю на слейв. Потом всё настраиваю, всё стандартно. Указываю мастер, файл бинлога, позицию. Формат бинлога mixed. Спустя некоторое время делаю запрос по базе. На мастере данные есть, на слейве нет. В чём может быть причина? Я всю голову сломал.

А ещё время от времени случается такое, что слейвы сами по себе отваливаются. Пишет, что такие данные уже есть. Откуда, блин? Никто, кроме мастера, в эти базы писать не может.

Если что, это mysql Ver 8.0.29-21 for Linux on x86_64 (Percona Server (GPL), Release ‘21’, Revision ‘c59f87d2854’)

UPD: на слейвах по какой-то причине не использует индексы, и по этой же самой причине не выбирает данные



Последнее исправление: u0000 (всего исправлений: 2)

Для начала не использовать mixed, только row. Да, по объёмам сильно больше будет в логе, но не будет глюков с rand(), now(), auto_increment и иже с ними.

Использовать gtid.

Небось ещё и slave-skip-errors юзаешь в конфигах.

Fafhrd
()
Ответ на: комментарий от u0000

Учитывая, что уже есть ошибки, то лучше перелить. И слейву указывать позицию лучше через gtid_purged, у тебя он в снапшоте xtrabackup должен быть в файлике xtrabackup_binlog_info. В интернетах много гайдов, включая саму перкону.

Fafhrd
()
Ответ на: комментарий от Fafhrd

Там апдейт в шапке. Почему-то на слейвах индексы не использовались. Хотя были. И при селекте по неясной причине выдавало empty set.

u0000
() автор топика
Последнее исправление: u0000 (всего исправлений: 1)
Ответ на: комментарий от u0000

А индексы и не обязаны использоваться, это планировщик решает. Как минимум fullscan должен происходить и что-то показывать.

Fafhrd
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.