Можно ли восстановить данные из мусора
Модераторы: kdv, Alexey Kovyazin
Можно ли восстановить данные из мусора
Всем здравствуйте!
Впервые на этом форуме, поэтому прошу прощения если эта тема ранее обсуждалась. Поиск по гуглу ничего не дал.
Итак, есть база, небольшая (13 mb), из которой одним махом было удалено много записей. Как это случилось? Стояло каскадное удаление записей. В итоге удаление записи в одной таблице привело к удалению множества записей, от нее зависящих. Программист не вставил никакого предупреждения для пользователя.
Теперь вопрос: можно ли как нибудь извлечь данные из мусора? Сборка мусора не была включена для этой базы (я даже нашел текст от некоторых записей в бинарном коде).
Бэкап делался, но, увы, администратор не знал как его делать правильно и просто копировал gdb файл в другое место, не закрывая базу. В итоге gfix -v пишет file ZAVRN.GDB is not a valid databas
e.
Впервые на этом форуме, поэтому прошу прощения если эта тема ранее обсуждалась. Поиск по гуглу ничего не дал.
Итак, есть база, небольшая (13 mb), из которой одним махом было удалено много записей. Как это случилось? Стояло каскадное удаление записей. В итоге удаление записи в одной таблице привело к удалению множества записей, от нее зависящих. Программист не вставил никакого предупреждения для пользователя.
Теперь вопрос: можно ли как нибудь извлечь данные из мусора? Сборка мусора не была включена для этой базы (я даже нашел текст от некоторых записей в бинарном коде).
Бэкап делался, но, увы, администратор не знал как его делать правильно и просто копировал gdb файл в другое место, не закрывая базу. В итоге gfix -v пишет file ZAVRN.GDB is not a valid databas
e.
Вы наверное незаметили. Я написал, что сборка мусора в этой базе была отключена изначально.
Вот что пишет IBAnalyst:
Вот что пишет IBAnalyst:
Так что данные там должны быть. Вопрос в том, как их оттуда изъять.Автоматическая сборка мусора выключена, (sweep interval = 0),
однако расстояние между Oldest Snapshot и Oldest transactions (12912)
больше чем среднее число транзакций в день (59)..
Возможно какие-либо приложения сделали rollback большого количества
изменений примерно 220 дней назад.Мы рекомендуем запускать явную
сборку мусора (sweep) или запускать sweep (gfix -sweep) регулярно при
помощи Task Scheduler, когда нет пользователей, подсоединенных к БД.
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
это "автоматическая" сборка мусора выключена. Если интересует - почитай про сборку мусора вообще -
www.ibase.ru/devinfo/garbage.htm
www.ibase.ru/devinfo/garbage.htm
-
- Сообщения: 15
- Зарегистрирован: 25 окт 2004, 19:13
привет!
Если не сделали копию базы в момент, когда было произведено удаление, а еще потом читали что-то в этой таблице, то следов старых версий не удастся найти даже на низком уровне.
Проще посмотреть на бэкап - возможно, там что-то можно сделать и поднять данные хотя бы той утерянной таблицы.
С уважением,
Алексей Ковязин
Если не сделали копию базы в момент, когда было произведено удаление, а еще потом читали что-то в этой таблице, то следов старых версий не удастся найти даже на низком уровне.
Проще посмотреть на бэкап - возможно, там что-то можно сделать и поднять данные хотя бы той утерянной таблицы.
С уважением,
Алексей Ковязин