Восстановление удаленных записей

Ремонт и восстановление баз данных InterBase, Firebird, Yaffil

Модераторы: kdv, Alexey Kovyazin

Ответить
systemprogrammist
Сообщения: 3
Зарегистрирован: 14 ноя 2006, 05:15

Восстановление удаленных записей

Сообщение systemprogrammist » 14 ноя 2006, 05:33

Доброго всем времени суток
Есть база данных, хранится на флэшке.
Не так давно случайно произошло удаление всех записей из одной таблицы посредством выполнения: delete from tableName. Когда это заметили ( примерно через час ), скопировали с флэшки базу, флэшку с тех пор не трогали.
Возможно ли восстановление удаленных записей ( ~ 5000 )?
Воспользовался ibundeletetrial - он показал, что удаленных записей нет.
Что еще порекомендуете проделать?

firebird 1.5, WinXP, размер файла БД - 12Мб
Никаких дополнительных настроек после создания бд не делалось, то есть все по умолчанию

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 14 ноя 2006, 12:15

Восстановление возможно только в случае немедленного прекращения работы после удаления. Любой запрос, обратившийся к страницам с удалёнными версиями, имеет шанс собрать их как мусор.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 14 ноя 2006, 14:50

Ага. Как раз, когда заметили (через час), то скорее всего это был запрос к данным этой таблицы.
После чего и был собран мусор.
Так что теряй надежду.

systemprogrammist
Сообщения: 3
Зарегистрирован: 14 ноя 2006, 05:15

Сообщение systemprogrammist » 14 ноя 2006, 19:20

То есть, даже обычный select * from tablename убъет последнюю надежду?

И можно ли с этим как-нибудь бороться? хочу узнать на будущее...
В IBExpert нашел какой-то протокол, но можно ли будет оттуда потом вытащить нужное - непонятно...
Бэкапы конечно помогут, но все равно их никто чаще раза в день делать не будет, да и возможности такой нет.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 14 ноя 2006, 20:29

systemprogrammist писал(а):никто чаще раза в день делать не будет
Робот будет.
А саму возможность такого прибития таблиц нужно устранять.
Иначе и update rdb$pages можно от юзера дождаться.

systemprogrammist
Сообщения: 3
Зарегистрирован: 14 ноя 2006, 05:15

Сообщение systemprogrammist » 15 ноя 2006, 07:39

Там по смыслу такое надо... при слиянии двух баз... просто базы перепутали.
И последний вопрос, уже не по теме: разве можно делать бэкап, когда есть подключенные к базе пользователи? вроде я где то здесь же видел, что ни в коем случае нельзя копировать файл базы, если к нему существуют подключения

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 15 ноя 2006, 08:59

systemprogrammist писал(а):Там по смыслу такое надо... при слиянии двух баз... просто базы перепутали.
И последний вопрос, уже не по теме: разве можно делать бэкап, когда есть подключенные к базе пользователи? вроде я где то здесь же видел, что ни в коем случае нельзя копировать файл базы, если к нему существуют подключения
Копировать низя, а бакапить мона :)

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 15 ноя 2006, 10:27

Бэкап читает данные базы так же как и обычный клиент, открывает снэпшот и читает всё подряд.

Ответить