Как восстановить 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
  • Вопрос задан
  • 4364 просмотра
Пригласить эксперта
Ответы на вопрос 3
sashkets
@sashkets
Прекратил отвечать после 24.02.2022
Дело кислое.
Но если Вы перепробовали что-то вроди этого и этого рецепта и ничего..., увы-увы-увы.

Инна восстанавливается только с бекапа. Сочуствую Вам искренне
Ответ написан
@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
Ответ написан
Комментировать
@Bodrosh
Дело может быть еще в нехватке оперативной памяти, тоже столкнулся с проблемой падений таблиц типа:
[ERROR] mysqld: Table './br_db/br_usermeta' is marked as crashed and should be repaired


При попытках восстановления mysqlcheck - Innodb тип не подходит,
The storage engine for the table doesn't support repair

и в mysql через REPAIR TABLE выдавало Ок, но не помогало.

Пробовал так же пересоздавать таблицы
CREATE TABLE br_options2 LIKE br_options;
INSERT INTO br_options2 SELECT * FROM br_options;
DROP TABLE br_options;
RENAME TABLE br_options2 TO br_options;


Но ошибки появлялись те же, причина в итоге нашлась - нехватка памяти...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы