Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
recovery delete records (friend) 16/10/2003 - 12:53:08
      Re: recovery delete records (Dinky) 16/10/2003 - 21:31:42

> Original message text:
> From: friend - 16/10/2003 - 12:53:08
> Subject:recovery delete records
> -----------------
> народ помогите,
> из таблицы удалич кучу нужных строк :(
> как тока заметил остановил базу
> myisamchk.exe -e
> показывает что у меня там есть удаленные блоки...
> как мне их востановить ....
> :(((((
>


From: Dinky - 16/10/2003 - 21:31:42
Subject:recovery delete records
-----------------
готовых рецептов не встречал, но пробовал разбираться сам.
замечу, что формат бинарника файла с данными может отличаться от платформы к платформе, так что надо экспериментировать "рядом" ;)
копал я MYD-файл, структура записи под виндами такая:
FFполе1поле2
например, имеем поле1 - primary key int, поле 2 - char(10),
будет выглядеть:
FF 00 00 00 00 61 61 61 61 61 61 61 61 61 61 (0,aaaaaaaaaa)
FF 01 00 00 00 62 62 62 62 62 62 62 62 62 62 (1,bbbbbbbbbb)
и т.п.
Если грохнуть например вторую запись, то получится такое:
00 FF FF FF FF 62 62 62 62 62 62 62 62 62 62 (1,bbbbbbbbbb)
Т.е. начало записи отмечается 00 вместо FF и ключ затирается FF-ками :( Чуть по другому получается, если грохнуть несколько записей подряд - первая так и есть, а последующие:
00 00 00 00 02 (было FF 03 00 00 00)
00 00 00 00 03 (было FF 04 00 00 00)
и так далее, "номер" увеличивается для каждой следующей вне зависимости, какое значение ключевого поля там было.
К сожалению мои эксперименты по "ручному" восстановлению успехом не увенчались - ключевое поле восстановить не удалось.
Но данные выдрать легко - менять '00' в начале записи на 'FF' и запускать myisamcheck/mysqlcheck, все будет на месте, кроме PK.

--
Dmitry



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
11081



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |