Приложение 7. Перенос БД Firebird c Windows на Astra Linux
Версии СУБД Firebird работающей в составе SCADA Энтек на Windows и Astra Linux отличаются (на Windows работает Firebird версии 2.5, на Astra Linux версия 3.0), поэтому простым копированием их перенести нельзя. Для переноса БД проекта необходимо в Windows создать бэкап БД с помощью утилиты Gbak, входящей в состав дистрибутива Firebird, и затем на Astra Linux восстановить из бэкапа БД уже в соответствующей версии Firebird. Рассмотрим процесс переноса БД на примере БД Справочника (DISPATCHER.FDB) для типового проекта ЦППС Энтек.
По умолчанию в проекте ЦППС Энтекс БД расположены в папке C:\DB. Для бэкапов создать папку C:\DB_backup, затем на Windows запустить консоль от имени Администратора и выполнить команду:
"c:\Program Files (x86)\Firebird\bin\gbak.exe" -b -g -v C:\DB\DISPATCHER.FDB C:\DB_backup\DISPATCHER.fbk -user SYSDBA -pass masterkey
В папке C:\DB_backup появится файл DISPATCHER.fbk
Полученный файл DISPATCHER.fbk скопировать на сервер c ОС Astra Linux, можно создать папку /home/db_backup/ и скопировать туда. Далее необходимо восстановить БД из бэкапа. Для этого запустить терминал и выполнить команду (потребуется пароль root):
sudo gbak -c -v /home/db_backup/DISPATCHER.fbk /home/db/DISPATCHER.FDB
Поскольку операция восстановления из бэкапа выполнялась с правами «суперпользователя» файл БД будет иметь владельца и группу root. Необходимо установить для файла группу и пользователя firebird и выставить новые права доступа для чтения и записи с помощью команд:
sudo chown firebird:firebird /home/db/DISPATCHER.FDB
sudo chmod 775 /home/db/DISPATCHER.FDB
После копирования папки с проектом на Astra Linux в файлах конфигурации останутся старые пути к файлам БД в Windows. Для БД Пользователей и БД Событий эти пути можно заменить непосредственно через ПО SCADA Энтек. Для БД Справочника есть нюанс из-за русской кодировки, в которой зашифрован пароль, в папке с проектом в каталоге Dispatcher в файле DISPATCHER.ini важно заменить путь к папке c БД на Windows и потом скопировать его проект на Astra Linux.