Переход с Firebird 1.5.3 на 2.0.1
Добавлено: 24 авг 2007, 14:01
Может, кто-то встретится с проблемами, похожими на те, которые встретились у меня. Привожу историю моего перехода.
Перевод базы с версии Firebird 1.5.3(153) на 2.0(20)
Прямое восстановление резервной копии, сделанной под сервером 153 на сервере 20 дало неработоспособную базу: Перестали работать часть функций, находящихся в FreeUDFlib.dll, при компиляции ХП на многие стала выходить ошибка "операция, неприменимая к системным таблицам,возможно рекурсионный вызов". Причем ошибка в ХП выходила даже если пытаться компилировать процедуру с закоментаренным телом.
Операции с базой на 20 проводились из IBExpert на машине с 20, операции с базой 153 соответственно из IBExpert на машине где установлен Firebird 153. Сначала пытался с IBE на 153 работать с базой 20 , но потом заметил неоднозначность некоторых операций.(см.ниже)
Процесс перехода.
1. На 153 вместо функций из FreeUDFlib.dll были подключены аналогичные из FreeAdhocUDF.dll
2. Под сервером 153 метаданные базы были выгружены в скрипт.
3. Под сервером 20 (IBExpert находился на сервере 20) пустая база восстановлена из скрипта. Несколько попыток восстановления - каждый раз подправлял ссылки на глючившие функции FreeUDFlib.dll -> FreeAdhocUDF.dll).
4. Убедился что процедуры и триггеры компилируются под 20.
5. С помощью программы IBPump перекачал данные из рабочей базы в новую , которая под 20.
6. Создал пользователей на новом сервере.
7. На сервере 20 роли восстановились из скрипта , привилегии на таблицы пришлось раздавать заново. (через скрипт для каждой роли.) Почему то IBExpert на машине ,где установлен 153 показывал
для базы на 20 что привилегии назначены , а IBExpert на 20 машине показывал пустую таблицу привилегий для тех же ролей. (???)
8. Переправил путь для коннекта с базой в файле UDL - программа заработала c новой базой. Работаю через АДО (ZStyle OLEDB provider)
Перевод базы с версии Firebird 1.5.3(153) на 2.0(20)
Прямое восстановление резервной копии, сделанной под сервером 153 на сервере 20 дало неработоспособную базу: Перестали работать часть функций, находящихся в FreeUDFlib.dll, при компиляции ХП на многие стала выходить ошибка "операция, неприменимая к системным таблицам,возможно рекурсионный вызов". Причем ошибка в ХП выходила даже если пытаться компилировать процедуру с закоментаренным телом.
Операции с базой на 20 проводились из IBExpert на машине с 20, операции с базой 153 соответственно из IBExpert на машине где установлен Firebird 153. Сначала пытался с IBE на 153 работать с базой 20 , но потом заметил неоднозначность некоторых операций.(см.ниже)
Процесс перехода.
1. На 153 вместо функций из FreeUDFlib.dll были подключены аналогичные из FreeAdhocUDF.dll
2. Под сервером 153 метаданные базы были выгружены в скрипт.
3. Под сервером 20 (IBExpert находился на сервере 20) пустая база восстановлена из скрипта. Несколько попыток восстановления - каждый раз подправлял ссылки на глючившие функции FreeUDFlib.dll -> FreeAdhocUDF.dll).
4. Убедился что процедуры и триггеры компилируются под 20.
5. С помощью программы IBPump перекачал данные из рабочей базы в новую , которая под 20.
6. Создал пользователей на новом сервере.
7. На сервере 20 роли восстановились из скрипта , привилегии на таблицы пришлось раздавать заново. (через скрипт для каждой роли.) Почему то IBExpert на машине ,где установлен 153 показывал
для базы на 20 что привилегии назначены , а IBExpert на 20 машине показывал пустую таблицу привилегий для тех же ролей. (???)
8. Переправил путь для коннекта с базой в файле UDL - программа заработала c новой базой. Работаю через АДО (ZStyle OLEDB provider)