Поврежденный индекс в бекапе

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

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

Ответить
wild_arg
Сообщения: 1
Зарегистрирован: 12 фев 2008, 12:38

Поврежденный индекс в бекапе

Сообщение wild_arg » 12 фев 2008, 12:45

Ситуация следующая:
fb 1.5
Есть только бекап. Индекс в нем поврежден. Восстановление с деактивированием индекса не помогает, вернее не совсем. Не могут восстановиться процедуры, т.к. одна использует план по этому индексу. Вот что пишет виндовый fb-сервер при восстановлении:
...
gbak: restoring privilege for user TWUSER
gbak: restoring privilege for user TWUSER
gbak: restoring privilege for user TWUSER
IBE: index cannot be used in the specified plan
.
index NAB_IC1D1 cannot be used in the specified plan.
IBE: Restore completed. Current time: 12:24:19. Elapsed time: 00:00:05

В результате БД восстанавливается, но нет ни одного триггера, ни одной процедуры.

Есть ли какая-нибудь возможность восстановить без перекомпиляции процедур чтоли или какой-нибудь другой вариант? Заранее спасибо.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 12 фев 2008, 13:09

Есть только бекап. Индекс в нем поврежден.
никаких индексов в бэкапе нет. есть только их описания.
index NAB_IC1D1 cannot be used in the specified plan.
причина проблемы - указание плана запроса в процедуре.
при restore для отслеживания зависимостей процедуры препарируются в памяти, а значит строятся новые планы. и, судя по всему, план указан некорректный.
Есть ли какая-нибудь возможность восстановить без перекомпиляции процедур чтоли или какой-нибудь другой вариант?
какой именно FB? то есть, какая версия 1.5 из пяти?
могу порекомендовать IBBackupSurgeon, но это платный инструмент. Т.е. можно купить, и восстановить все что угодно.

Ответить