gdb напрямую из ib5.6 на yaffil887 - работает но я испортил

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

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

Ответить
Karimych

gdb напрямую из ib5.6 на yaffil887 - работает но я испортил

Сообщение Karimych » 09 апр 2005, 12:36

База давно крутилась под ib5.6. Поставил яффил - тоже работает только в 3 раза быстрее.
Прямо днем заменил одно на другое.
1. остановил гардиан и сам нтнрбейз.
2. Поставил яфил.
3. Запустил яффил. Заработало!
4. Оказался баг с внешней функцией при работе под яфил.
6. Остановил яфффил.
5. из-за п.4 остановил яффил, заменил gds32.dll от IB5.6 в системной папке.
7. Запустил гардиан и сам интербейз.
8. проверил gfixом - база цела.
9. Все продолжили работу.
10. Спустя день Разработчик нашел причину пункта 4. Надо было уменьшить на 1 длину строки возвращаемой внешней процедурой.
11. При помощи quickdesk цепляюсь к базе, нахожу функцию изменяю что надо и нажимаю "Compile".
12. Выходит ошибка что-то вроде того, что операция не поддерживается для системных таблиц.
13!!!! Оказывается он DROPнул функцию а новую не создал - не смог.
14. Не могу создать функцию ни из под quickdesk ни ibexpert ни просто созданным скриптом.
15. gfix говорит что с базой все хорошо.
16. Делаю бэкап - все ок
17. Делаю ресторе - в конце на этапе пересчета индексов встает и ругается что индекс не уникальный.
18. В связи с отсутствием внешней функции у программы пропала некоторая функциональность - ругается на отсутствии функции.
19. Функцию добавить не могу - пишет ошибку, GFIX ничего не находит, GBAK-RESTORE не отрабатывает.
Помогите подскажите что сделать?

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

Сообщение kdv » 09 апр 2005, 13:32

Не могу создать функцию ни из под quickdesk ни ibexpert ни просто созданным скриптом.
что значит "не могу"?

Гость

Сообщение Гость » 09 апр 2005, 13:35

kdv писал(а):
Не могу создать функцию ни из под quickdesk ни ibexpert ни просто созданным скриптом.
что значит "не могу"?
Вот

Statement failed, SQLCODE = -607
unsuccessful metadata update
-DEFINE FUNCTION ARGUMENT failed
-internal error

Karimych

Сообщение Karimych » 09 апр 2005, 14:06

Вопрос снят, извините за беспокойство. restore прошло после удаления содержимого пары таблиц, чьи значения оказались не уникальными при построении уникального индекса. Слава богу это кэш остатков складской программы.
:-)

Karimych

Сообщение Karimych » 09 апр 2005, 14:08

И соответственно на восстановленной базе легко удалось объявить "утерянные" внешние функции

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

Сообщение kdv » 09 апр 2005, 14:08

а база у тебя не битая, часом (internal error)? udf не может не объявиться. декларации udf плевать вообще на все, кроме уникальности имени функции. даже dll не нужна.

Гость

Сообщение Гость » 09 апр 2005, 14:14

kdv писал(а):а база у тебя не битая, часом (internal error)? udf не может не объявиться. декларации udf плевать вообще на все, кроме уникальности имени функции. даже dll не нужна.
ДУМАЮ , база повела себя неадекватно из-за моей лени. Надо было сделать под иб56 копию, а под яффил восстановить. К тому же во времена старт-останова sql-сервера - скорее всего прервал хранимую процедуру пересчета остатков и нарушил целостность уникального столбца.
Дети, никогда так не делайте! :-)

Ответить