Инструкция по миграции на Firebird v.3

Внимание!

С версии системы ELMA 3.9.2 началась поддержка Firebird 3.0.1. В базовой поставке ELMA по-прежнему идет Firebird 2.5.

Более ранние версии системы поддерживают работу только с Firebird 2.5.

В системе ELMA версии 3.9.2 и выше при работе с Firebird 3.0.1 поддерживается только создание новых баз ("с нуля") или работа с базами, в которых вручную были сделаны изменения для обеспечения совместимости с новой версией.

Для перехода на Firebird версии 3.0.1 необходимо выполнить следующие действия:

1. Конвертировать базу ELMA с Firebird 2.5 на 3.0.1. Для этого необходимо:

1.1. Подключиться к текущей базе данных ELMA (Firebird 2.5). Для этого можно воспользоваться стандартной утилитой ISQL или установить IBExpert.

1.2. В связи с тем, что в Firebird 3.0 добавилось 3 ключевых слова: DELETING, INSERTING, UPDATING, любые колонки или таблицы с такими именами должны быть пересозданы с указанием регистра. Например, существует таблица SYS_PREUPDATEVERSION с колонкой UPDATING.
Так, для преобразования БД с версии 2.5 на версию 3.0.1, необходимо на старой версии сделать изменение названия колонки. Для этого, необходимо выполнить запрос:

ALTER TABLE SYS_PREUPDATEVERSION ALTER COLUMN UPDATING TO "Updating"

1.3. После этого нужно сделать бэкап БД версии 2.5. Для этого, необходимо выполнить команду в cmd:

gbak -backup -user sysdba -password masterkey "C:\ELMA\UserConfig\BASE.FDB" "C:\ELMA\UserConfig\base_25.fbk"

2. Далее скачиваем (например, с официального сайта) и устанавливаем Firebird версии 3.0.1.

3. Останавливаем работу службы ELMA. Если:

  • ELMA установлена на IIS. Правой кнопкой мыши нажать на Компьютер, выбрать Управление.

В левом вертикальном меню открыть Службы и приложения – Диспетчер служб IIS – Подключения – Пулы приложений. В списке фильтров найти ELMA3 и выделить. В правом вертикальном меню Задачи пула приложений нажать Остановить.

После этого действия служба ELMA будет остановлена.

  • ELMA установлена на сервере Cassini. Вызвать Диспетчер задач, перейти на вкладку Службы. Правой кнопкой мыши нажать на строку "ELMA3ExpressCassiniService». Выполнить действие Остановить.

После этого действия служба ELMA будет остановлена.

4. После этого нужно внести изменения в файл configuration.config. Как правило, располагается по следующему пути: <локальный диск:>\<папка c системой ELMA>\\configuration.config.

Вносим следующие изменения:

  • порт, на котором будет работать сервер;

  • имя новой БД.

После внесения изменений сохраняем данный файл.

5. Для того, чтобы ELMA запустилась на Firebird 3.0.1, вносим изменения в файл firebird.conf (путь до файла может выглядеть так: <локальный диск:>\Program Files\<папка c системой Firebird>\Firebird_3_0\firebird.conf). Открываем его для редактирования через любой текстовый редактор.

Нужно убедиться, что в файле firebird.conf прописаны следующие параметры:

  • WireCrypt = Disabled;
  • AuthServer = Legacy_Auth, Srp, Win_Sspi;
  • AuthClient = Legacy_Auth, Srp, Win_Sspi.

В параметре RemoteServicePort можно прописать порт, на котором будет работать сервер. Если тут заменили порт, то в ELMA тоже нужно его поменять.

Также нужно раскомментировать строки с параметрами (убираем знак #):

  • #WireCrypt = Disabled
  • #AuthServer = Legacy_Auth, Srp, Win_Sspi
  • #AuthClient = Legacy_Auth, Srp, Win_Sspi
  • #RemoteServicePort

Будут выглядеть так:

После внесения изменений файл сохраняем файл firebird.conf.

6. Останавливаем работу службы Firebird. Правой кнопкой мыши нажать на Компьютер, выбрать в контекстном меню пункт Управление.

В левом вертикальном меню открыть Службы и приложения – Службы. Правой кнопкой мыши нажать на "Firebird Server" в списке. Выполнить действие Остановить.

7. Запустить работу службы Firebird. В меню, описанном в п.6, выполнить действие Запустить.

8. Запустить работу службы ELMA.

  • ELMA установлена на сервере IIS. Правой кнопкой мыши нажать на Компьютер, выбрать в контекстном меню пункт Управление.

В левом вертикальном меню открыть Службы и приложения – Диспетчер служб IIS – Подключения – Пулы приложений. В списке фильтров найти ELMA3 и выделить. В правом вертикальном меню Задачи пула приложений и нажать на кнопку Запустить.

После этого действия служба ELMA будет запущена.

  • ELMA установлена на сервере Cassini. Вызвать Диспетчер задач, перейти на вкладку Службы. Правой кнопкой мыши нажать на строку "ELMA3ExpressCassiniService". Выполнить действие Запустить.

После этого действия служба ELMA будет запущена.

9. Убеждаемся в работе веб-приложения ELMA. После запуска ELMA будет создана новая БД с именем, указанным в файле configuration.config. С этого момента работает Firebird 3.0.1.

10. Далее нужно восстановить базу из бэкапа. Для этого необходимо использовать утилиту gbak из состава Firebird 3 (<локальный диск:>\Program Files\<папка c системой Firebird>\Firebird_3_0\). Для этого останавливаем работу службы ELMA (см п.3) и выполняем команду в cmd:

gbak -replace -user sysdba -password masterkey "C:\ELMA\UserConfig\base_25.fbk" "C:\ELMA\UserConfig\base_30.fdb"

11. Запускаем работу службы ELMA (см п.8).

12. Проверяем, что все запустилось и что старая база данных ELMA отображается в веб-приложении.

13. Выполняем индексацию объектов системы. Для этого нужно зайти в систему под учетной записью администратора и выполнить процедуру индексирования (Администрирование – Система – Индексирование – Индексировать повторно).