Задать вопрос

Как восстановить InnoDB таблички если они были повреждены?

Доброго времени суток.
На днях столкнулся с проблемой, после перезапуска системы посыпалась одна из табличек.
При попытке получения данных из нее получаю `Table 'mydb.mytable' doesn't exist in engine`
При попытке восстановить данные из таблички с помощью innodb_force_recovery получаю
`InnoDB: Table 'mydb.mytable' is corrupted.`
Также в ходе попыток восстановления заметил что мускуль жалуется на то что другие таблички повреждены (хотя и работают)
Ну увидев это я решил попробовать восстановить хоть их, но после CHECK TABLE REPAIR TABLE эти таблички также сломались вернув `The storage engine for the table doesn't support repair`
Подскажите пожалуйста, что ломает мои таблички, как это предотвратить, и можно ли восстановить данные из первой поломанной таблички (Для остальных есть бекап) ?

Немного технических подробностей:
Сервер - Небольшой VDS арендованный у хостера.
Система - Ubuntu 18.04.3 LTS
СУБД - MariaDB 10.4.8

Чуть не забыл уточнить, в логах вот такая ошибка
[ERROR] InnoDB: Table `mydb.mytable` contains unrecognizable instant ALTER metadata

Схожие проблемы у других пользователей:
https://www.reddit.com/r/mariadb/comments/d01s5z/t...
https://jira.mariadb.org/browse/MDEV-20198
  • Вопрос задан
  • 4535 просмотров
Подписаться 1 Простой 2 комментария
Ответ пользователя Mikhail Small К ответам на вопрос (3)
@smolfree
Sysadmin
Доброго времени суток, столкнулся с похожей проблемой и просидел несколько дней, в том числе наткнулся на этот пост. Понимаю, что уже поздно, но вот нашел вариант решения, который помог, очень, потому, как ничего другое не помогало. Надеюсь кому-то ещё поможет.
Репо с набором скриптов TwinDB data recovery toolkit: https://github.com/chhabhaiya/undrop-for-innodb#:~...
Сам сайт и описания вариантов восстановления: https://twindb.com/mysql-data-recovery/
И видео, где он объясняет и показывает, что и как: https://www.youtube.com/watch?v=-1LeLhGjAWM
Ответ написан
Комментировать