-
Усем привет! Возможно, в скором времени, придется переводить наш софт на работу с огнептицем заместо IB 7.5... Кому-то приходилось уже такое делать? Какие подводные камни могут быть? База на данный момент имеет примерно следующую структуру: - 500 таблиц - 100 вьюшек - 300 ХП - 500 триггеров - 700 индексов - несколько десятков собственных UDF функций Клиентская часть насчитывает пару десятков экзешников (включая сервисы) и около 100 dll (часть из которых СОМ). В основном используется BDE подключение и, в меньшей степени, IBExpress. Насколько я понимаю, особых проблем быть не должно, но какие-то нюансы выяснятся наверняка... Вот и хотелось бы знать, на что обратить внимание в первую очередь и чего вообще ожидать от сей манипуляции?
-
Да, забыл еще уточнить - используются и External Tables. Причем иногда они создаются и наполняются вне сервера (как бинарные файлы), а потом уже подключаются к БД...
-
Да, нормально, так. Очень понравились 100 dll и 700 индексов. А все остальное - легко. Ну перепишите пол-проекта, это мелочи.
-
> Jeer © (17.05.13 20:14) [2]
> Очень понравились 100 dll и 700 индексов.
Почему?
> Ну перепишите пол-проекта, это мелочи
Так все плохо? Вроде как, они похожи весьма. Не на оракл же переходим. Или был такой опыт? Поделись.
-
Удачи Вам, господа! InterBase и Firebird - это два абсолютно разных SQL-сервера, отличающихся как по ODS (On Disk Structure) так и по синтаксису некоторых SQL-команд. 1) Для перевода с IB7.5 на Firebird через backup/restore придется даунгрейдить базу до IB6.0, и только потом попытаться восстановить ее хотя бы в Firebird1.5. Опыт даунгрейда среди версий Firebird у народа имеется. Что не скажешь об опыте даунгрейда среди IB, политика Embarcadero в этом отношении одна: используйте свежие версии. Вывод: миграцию придется делать через SQL-скрипт. В том числе и самих данных. 2) А кодировки-то теперь разные. Embarcadero в то место, где у Firebird уже около года находится UTF8 в виду каких-то (наверное, религиозных) убеждений впихнуло другую кодировку. Не забыв отразить это в исходниках IBX. Вывод: бежим на софткей за ФИбами. 3) Вытекает из предыдущего: переписывание всех модулей по ФИбы. Шо там Вы говорили за 100 dll ? 4) Есть некоторые конструкции, которые были допустимы в IB6, которые "прощает" IB7.5, но в Firebird это явная ошибка. Например:
SELECT A.FIELD1, B.FIELD1, MY_TABLE2.FIELD2
FROM MY_TABLE1 A, MY_TABLE2 B
в Firebird не взлетит. Удачи отлова багов в самых неожиданных местах. 5) Желание залезть сразу на Firebird 2.1+ приведет к пересмотру всех триггеров и процедур на предмет русских комментариев, ибо кодировка сырцов PSQL блоков у Firebird 2.1+ теперь не та, что у базы, а UNICODE_FSS. Ну, или задавать в строке подключения к базе, шо кодировка подключения у нас WIN1251 или шоу вас там... 6) работа с InterBase/Firebird через BDE - это пять ! =) А вообще, если там нет ничего "военного" (типа, собственных BLOB-фильтров), то должно почти со старта взлететь. С багами, с глюками - но взлететь. Дорогу осилит идущий. (с)
-
> PEAKTOP © (20.05.13 00:57) [4]
Спасибо за развернутый ответ!
> InterBase и Firebird - это два абсолютно разных SQL-сервера
Ну, не настолько разных, как IB vs MS-SQL... А именно такой вариант может стать альтернативой FB. И что-то мне подсказывает, что в этом случае гемороя будет больше.
> Для перевода с IB7.5 на Firebird через backup/restore придется > даунгрейдить базу до IB6.0
Т.е. забэкапить в IB и восстановить в FB не получится? Жаль.
> Вывод: миграцию придется делать через SQL-скрипт. В том > числе и самих данных
Ну, раз придется, так придется. Впринципе, у нас уже такой функционал реализован, но по другим причинам.
> Embarcadero в то место, где у Firebird уже около года находится > UTF8 в виду каких-то (наверное, религиозных) убеждений впихнуло > другую кодировку
Речь точно про IB 7.5? Или про более поздние? Абракадабра там, вроде, еще не при делах была...
> переписывание всех модулей по ФИбы
А вот этого бы точно хотелось избежать. А что, IBX под FB разве не бежит? Кстати, забыл уточнить - Дельфя 6 используется.
> Есть некоторые конструкции, которые были допустимы в IB6, > которые "прощает" IB7.5, но в Firebird это явная ошибка
Ну это понятно. Но, таких хреновен, думаю будет не много... Такая штуковина, как в приведенном примере, точно пока не попадалась. Но, что несколько десятков запросов придется переделать - не беда. QA, правда, попотеет...
> Желание залезть сразу на Firebird 2.1+ приведет к пересмотру > всех триггеров и процедур на предмет русских комментариев
Комментарии ВСЕ исключительно на англицкой мове.
> работа с InterBase/Firebird через BDE - это пять ! =)
Ну, тут уж исторически так сложилось... Софту то уже второй десяток лет.
> А вообще, если там нет ничего "военного" (типа, собственных > BLOB-фильтров), то должно почти со старта взлететь. С багами, > с глюками - но взлететь
На то и уповаем... "военного", вроде, ничего нет. Ну, разве, за исключением внешних таблиц. Как там с ними у FB? Структура та же?
Вообще, вариантов пока 3: 1. Оставить все как есть - идеальный вариант, но тут уж зависит до чего наше начальство с абракадаброй договорится. 2. Переход на FB. 3. Переход на MS-SQL. Имхо, самый трудоемкий вариант.
Еще раз, благодарствую!
-
PEAKTOP © (20.05.13 00:57) [4]
> 6) работа с InterBase/Firebird через BDE - это пять ! =)
Работает же
-
> Работает же
Возможно пока работает в некоторых конкретных случаях. И вполне возможно что ещё долго будет работать в этих конкретных случаях. Но автор думает о весьма радикальном изменении проекта.
-
> Германн © (27.05.13 02:18) [7]
> Но автор думает о весьма радикальном изменении проекта.
Не. Я как раз думаю, как бы радикальных изменений избежать. Пока, правда, тихо, но в любой момент начальство может прибежать и возгласить "Поехали!".
-
> Т.е. забэкапить в IB и восстановить в FB не получится? Жаль.
А какая проблема через скрипт выгрузить-загрузить? Возьми IBExpert (если работаешь с IB/FB этот инструмент вообще must have), там всё это делается в 10 секунд и не надо никаких своих функционалов придумывать. Кто тебе мешает/запрещает в тестовом режиме через IBExpert сделать выгрузку всей базы в скрипт и создать её из скрипта уже на FB?
-
> Труп Васи Доброго © (30.05.13 10:36) [9]
> Кто тебе мешает/запрещает в тестовом режиме через IBExpert > сделать выгрузку всей базы в скрипт и создать её из скрипта > уже на FB?
Как кто мешает? Не могу я на всех >30000 серверах IBExpert поставить. Он денег, как-бы, стоит... У меня то он, понятное дело, стоит. А вот базы у клиентов. Или ты только про скрипт с метаданными? Но, во-первых, структуры (версии) разные, а во-вторых, данные тоже перегонять надо...
-
> Он денег, как-бы, стоит...
ЕМНИП для exUSSR халявный.
> >30000 серверах
...эээ... ГИБДД? Армия? Чья? Пентагон? И при этом через BDE??? ЧуднЫ дела твои, Господи!!!
> Но, во-первых, структуры (версии) разные
И что? как это повлияет на результирующий скрипт? (Прямо все 30000 и разные?)
> во-вторых, данные тоже перегонять надо...
И что? IBExpert и данные в скрипт прекрасно выгружает. Не пойму в чём проблема с установкой? Тебе же по любому на каждом из 30000(!?) серверов придётся IB гасить и FB поднимать, значит присутствовать (хотя бы и удалённо придётся), почему-бы заодно и IBExpert не воткнуть?
-
> Труп Васи Доброго © (03.06.13 09:27) [11]
> ЕМНИП для exUSSR халявный.
У нас тут не там... :)
> ...эээ... ГИБДД? Армия? Чья? Пентагон?
Не. Не одна база на 30000 серверах, а 30000 серверов, каждый со своей базой (у клиентов стоят).
> Тебе же по любому на каждом из 30000(!?) серверов придётся > IB гасить и FB поднимать, значит присутствовать
С чего это мне там придется присутствовать? Инсталляторы на что? Большинство клиентов автоматические апдейты хочут в обязательном порядке....
Короче, IBExpert не проканает...
|