Size: a a a

DBA - русскоговорящее сообщество

2021 April 28

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
MySQL какой версии ?
источник

PV

Pavel Vikiryuk in DBA - русскоговорящее сообщество
Коллеги, всем привет. Выхватил проблему с репликацией из базы 5.7 в 8.0.22 (Percona). На тестах все хорошо работало, попробовал залить на новый сервак дамп боевой базы и поднять репликацию, но выхватил ошибки. Были учтены нюансы с кодировками, то есть структура базы заливалась отдельно, в ней менялась дефолтная кодировка и COLLATE, далее заливались дампы таблиц содержащие только записи, без структуры. В тестовой среде все это стабильно работало. Отличие в потенциальном проде только в том, что есть две таблицы, в которых данные добавляются с помощью транзакций, ну то есть START TRANSACTION; INSERT, COMMIT;. Ошибка вылезает при внесении изменений именно в эти две таблицы, с прочими проблем нет
источник

PV

Pavel Vikiryuk in DBA - русскоговорящее сообщество
Собственно ошибка выглядит следующим образом:
Could not execute Update_rows event on table db_name.table_name; Can't find record in 'table_name', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUN
D; the event's master log mysql-bin.000156, end_log_pos 502376382
источник

PV

Pavel Vikiryuk in DBA - русскоговорящее сообщество
По указанному log_pos в бинлоге ничего внятного:
# at 502376382
#210427 12:01:14 server id 7009933  end_log_pos 502376452 CRC32 0xdcb565ce      Write_rows: table id 118169 flags: STMT_END_F

BINLOG '
2tKHYB6N9moAMQAAAIxeJykAAJnNAQAAAAEAAgAE//BD/I4AYKyj9AIAAAAAzmW13A==
источник

PV

Pavel Vikiryuk in DBA - русскоговорящее сообщество
Соответственно если скипать ошибки по этим таблицам по одной и рестартить реплику, все отлично работает, слей догоняет мастера и так до следующего раза. Подскажите пожалуйста, куда копать, в каком направлении. Спасибо заранее.
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Это очень похоже на разрушение целостности данных при репликации.
Т.е. реплику, видимо, если это так, тебе надо создавать заново.
источник

PV

Pavel Vikiryuk in DBA - русскоговорящее сообщество
Была мысль, пробовал при очередном стопе репликации залить таблицы эти из свежего дампа, ну типа чтобы расхождений не было. Скипнуть дубли и дальше по идее все должно быть ровно, но нет. Пока рабочая идея в этих транзакциях, точнее в роллбэках транзакций и разнице между версиями базы, ну типа режимы и прочее
источник

PV

Pavel Vikiryuk in DBA - русскоговорящее сообщество
Спасибо за идею! Это тоже попробую проверить как-то
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Сколько таких ошибок?

Скипать опасно, ты внесёшь рассинхрон в данные, и вообще неясно , когда это может вылезти или не вылезет никогда...
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Данные ВСЕГДА добавляются с помощью транзакций, это ни о чём не говорит.

Надеюсь, у тебя все таблицы InnoDB?
источник

PV

Pavel Vikiryuk in DBA - русскоговорящее сообщество
Да, движок одинаковый, везде innodb. По транзакциям все верно, я криво выразился) Скипал я не все подряд, типа по коду ошибки, а по одной в рамках этих двух таблиц. Они небольшие и их хоть вручную можно синхронизировать. На больших таблицах без всяких роллбэков проблем нет, все нормально реплицируется
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Это всё никак не должно влиять на репликацию.
источник

Y

Yury in DBA - русскоговорящее сообщество
всем привет. можете посоветовать бд для хранения таблицы с битовыми данными фиксированной длинны. главные требования: нежрабельность места на диске, возможность добавления колонок, null значения. желательна проверка на уникальность. Данные практически не будут изменяться, за исключением null ячеек. данных будет много, сотни миллионов строк.
источник

ES

Eduard Sapotski in DBA - русскоговорящее сообщество
Под описанные требования подойдет любая ширпотребная СУБД.
источник

Y

Yury in DBA - русскоговорящее сообщество
интересует минимальный размер на диске
источник

ES

Eduard Sapotski in DBA - русскоговорящее сообщество
Если Вы бинарные данные собираетесь хранить, при чем здесь СУБД к месту на диске?
источник

Y

Yury in DBA - русскоговорящее сообщество
не очень в теме. бинарники фиксированного размера не жмутся?
источник

ES

Eduard Sapotski in DBA - русскоговорящее сообщество
Какой у Вас ориентировочно размер одной записи?
источник

Y

Yury in DBA - русскоговорящее сообщество
~150-300 бит
источник

Y

Yury in DBA - русскоговорящее сообщество
в одной ячейке
источник