Не надо максимализьмаЛысый писал(а): Я например, так и не решил для себя что лучше: варнинги и восстановимый бакап или ерор и иди кури доку
FB 1.5.2: проблема с восстановлением базы
Модераторы: kdv, Alexey Kovyazin
-
Boris Kuritsin
- Сообщения: 11
- Зарегистрирован: 24 фев 2005, 13:10
Короче, все эти запросы вернули пустой набор данных. Но решение (может быть, некрасивое) найдено - восстанавливать базу без "commit after each table" - не понимаю почему, но это срабатывает и помогает!Merlin писал(а):select * from rdb$user_privileges UP
where
UP.rdb$object_type=13
and
not exists(select 1 from rdb$roles RL where RL.rdb$role_name=UP.rdb$relation_name)
Тот же запрос в случае подозрения на битые системные индексы:
<...>
Запрос, о котором говорил в прошлый раз, в случае того же подозрения:
<...>
Если всё это шаманство не помогает, то, возможно, дело в повреждении таблицы RDB$SECURITY_CLASSES. Учить её чинить по переписке я не возьмусь. Кстати, owner менять хакерскими методами у объектов в базе не пытался? Такие попытки при неверной последовательности действий ведут к её повреждениям.
Поэтому спасибо всем за обсуждение и подсказки, тему как животрепещущую можно считать закрытой, а как теоретическую - это вам виднее...
-
Boris Kuritsin
- Сообщения: 11
- Зарегистрирован: 24 фев 2005, 13:10
Вчера столкнулся с аналогичной проблемой. При снятом "commit after each table" все работает, иначе вылетает. Сделал тдельную копию базы, содержащую только метаданные. Далее удалял оттуда объекты частями, проверяя восстановление.
Результат. Данную ошибку 100%- но выдают таблицы, в которых есть COMPUTED BY поля, содержащие UDF. Убрал такие поля (сделал обыкновенные с триггером) - все заработало. Сервер - Firebird 1.5.2.4731
Результат. Данную ошибку 100%- но выдают таблицы, в которых есть COMPUTED BY поля, содержащие UDF. Убрал такие поля (сделал обыкновенные с триггером) - все заработало. Сервер - Firebird 1.5.2.4731