Восстановить удаленные строки MySQL?

Ситуация такова, что я удалил строки из базы данных, и теперь они нужны обратно.

Нет двоичных журналов и резервных копий.

Но насколько я знаю, записи не удаляются мгновенно, они просто помечаются как «удаленные», но фактически удаляются только после следующей оптимизации.

И я только что скопировал все файлы базы данных в безопасные места: frms, MIY и MYD. Я знаю структуру интересующей меня таблицы; Я даже могу найти все удаленные идентификаторы строк.

Есть ли какой-нибудь инструмент для восстановления недавно удаленных строк?


person ABTOMAT    schedule 21.09.2011    source источник
comment
Помните, что MySQL транзакционный - вы можете использовать set autocommit = 0; (и должен!) перед всеми УДАЛЕНИЯМИ и ОБНОВЛЕНИЯМИ (и даже ВСТАВКАМИ). Это позволяет вам сделать SELECT, чтобы убедиться в правильных конечных результатах. Если возникла проблема, можно выполнить ОТКАТ. Приносим извинения за потерю данных. Трудный способ усвоить урок. Надеюсь, это поможет избежать этого в будущем.   -  person Nate the Noob    schedule 21.09.2011
comment
@NatetheNoob Это ИСТИНА только для InnoDB.   -  person Karolis    schedule 21.09.2011


Ответы (1)


Если вы знаете смещение данных (или знаете какую-то уникальную строку) для строк, которые вы удалили, тогда откройте шестнадцатеричный редактор и скопируйте (двоичные) данные вручную. Если вы все-таки восстановите все это, вам очень повезет, и я надеюсь, что вы напишете об этом статью, потому что, честно говоря, я не верю, что это возможно.

person Chris Eberle    schedule 21.09.2011