Использование Firebird SQL#
Firebird SQL - это база данных (БД) с возможностью сохранения данных измерений, журналов и структурированных конфигураций.
Базы данных в формате Firebird используются следующими программами:
Утилита |
Название |
Назначение |
---|---|---|
|
Сохранение в базе данных журналов и конфигураций. |
|
|
Просмотр данных Черного ящика. |
|
|
Сохранение данных измерений. |
Эта БД может использоваться в двух режимах:
Сохранение данных измерений.
В этом режиме структура базы содержит только данные о значениях переменных.
Если в базе планируется сохранять только значения переменных, то необходимо использовать шаблон запросов БД: Сервер Interbase или аналог (раздельные БД значений, хранение данных).
Сохранение данных измерений, конфигураций и журналов.
В этом режиме структура базы данные о значениях переменных, конфигурацию и текст журналов в форме. которые обеспечивают возможность использования этих данных в стороннем ПО.
В этом режиме необходимо использовать шаблон запросов БД: Сервер Interbase или аналог (единая БД значений, экспорт конфигураций).
Используемые утилиты#
Информация
Все необходимые пакеты можно скачать с сайта документации или с официальных сайтов используемых утилит.
Для использования в системе РТС БД Firebird необходимо:
Установить
Firebird
сервер, настроить сервер.Создать базу данных, необходимую для использования в системе РТС.
Установить драйвер
ODBC
для доступа к БДFirebird SQL
.Настроить
алиас BDE
для использования БДFirebird SQL
.Внести изменения в форматы шаблонов, использующихся сервером РТС для работы с БД в формате
FB
.
Предупреждение
Данное описание составлено с ориентацией на версию Firebird 2.5.
Для использования БД Firebird
понадобятся:
Драйвер
ODBC
дляFirebird
.Установочный пакет
Firebird
.Так же, для манипуляций БД может быть использована графическая утилита управления БД Firebird
flamerobin
или другая со сходным функционалом.
Конвертация файла БД#
В случае, если база данных уже существует и она создана с использованием другой версии Firebird, при попытке ее использовать может возникать следующая ошибка:
unsupported on-disk structure for file E:\BASE\RTS.FDB; found 11.2, support 13.0
В тексте ошибки указываются версия файла БД и версия, поддерживаемая сервером Firebird.
Предупреждение
В случае, если возникает подобная ошибка использовать указанный файл баз данных с помощью текущего сервера Firebird невозможно.
Разные версии Firebird создают базы данных в различных форматах, которые могут оказаться не совместимы друг с другом.
Информация
Для того чтобы определить версию файла БД можно использовать утилиту gstat.exe
входящую в поставку Firebird, запустив ее с ключом -h
.
C:\fb\gstat.exe -h RTS.FDB
Wrong ODS version, expected 13, encountered 11
В результате выполнения команды будет выведена версия поддерживаемая Firebird (expected) и фактическая версия файла БД (encountered).
Firebird поддерживает следующие форматы файлов баз данных в зависимости от своей версии:
БД |
Firebird |
11.1 |
2.1 и позднее |
11.2 |
2.5 и позднее |
12 |
3.0 и позднее |
13 |
4.0 и позднее |
В случае возникновения подобной ошибки можно предпринять следующие действия:
Использовать версию Firebird соответствующую версии файла БД.
Конвертировать файл БД другой версии в ту, которую поддерживает нужная версия сервера Firebird.
Для конвертации файла базы данных, необходимо осуществить следующие действия:
Установить ПО Firebird той версии, которая умеет работать с версией БД.
Установить ПО Firebird той версии, которая будет использоваться при работе.
Создать резервную копию файла БД используя Firebird из п.1.
Восстановить файл БД из резервной копии используя Firebird из п.2.
Порядок выполнения действий
Предположим, что нам необходимо конвертировать базу данных расположенную в файле E:RTSBase_FBRTS.FDB
из формата 11 (Firebird 2.5) в формат 13 (Firebird 4.0). Для этого произведем следующие действия.
Если на компьютере установлена и запущена какая-либо версия Firebird необходимо остановить его сервер.
Для этого необходимо выполнить команду
instsvc.exe stop
из каталога текущей версии Firebird.Устанавливаем необходимые версии Firebird.
При установке необходимо выбрать разные каталоги для разных версий Firebird.
Пусть актуальная версия Firebird (4.0) установлена в каталог
C:fb
, а версия поддерживающая файл БД (2.5) в каталог C:fb25.Запускаем сервер Firebird, поддерживающий файл баз данных:
C:fb25bininstsvc.exe start
В случае успешного запуска в консоли будет выведено:
Service "Firebird Server - DefaultInstance" successfully started.
Если в консоли выведено сообщение об ошибке, значит уже запущена другая версия Firebird, которую необходимо остановить.
Создаем резервную копию файла БД, для чего переходим в каталог
E:RTSBase_FB
и выполняем команду:C:\fb25\bin\gbak.exe -b RTS.FDB RTS.FDB.backup -user SYSDBA -password masterkey
При этом в параметрах
-user
и-password
необходимо указать имя и пароль администратора Firebird, либо пользователя владельца файла БД.Останавливаем одну версию сервера Firebird и запускаем другую.
C:\fb25\bin\instsvc.exe stop C:\fb\instsvc.exe start
Создаем новый файл БД из файла резервной копии.
C:\fb\gbak.exe -c RTS.FDB.backup RTS_v3.FDB -user SYSDBA -password masterkey
Результат
В случае успешного выполнения всех операций в каталоге E:RTSBase_FB
будут находиться следующие файлы:
ФАЙЛ |
НАЗНАЧЕНИЕ |
RTS.FDB.backup |
Резервная копия файла БД. |
RTS.FDB |
Оригинальная БД в формате 11 для использования с Firebird 2.5. |
RTS_V3.FDB |
Копия БД в формате 13 для использования с Firebird 4.0. |
В зависимости от задач, ненужные файлы можно удалить.
К примеру, если использование Firebird 2.5 более не планируется, то файл RTS.FDB
можно удалить.
Предупреждение
При конфигурировании алиаса доступа к файлу БД необходимо использовать файл БД с версией, соответствующей версии Firebird.
Установка и настройка#
Для установки базы данных Firebird
необходимо произвести следующие действия:
Установить Firebird
в каталог C:\FB
.
Установить Firebird
в виде «SuperServer».
Настроить окружение для сервера, для этого добавить в переменную PATH
путь для утилит
C:\FB\bin
.
Создать каталоги:
C:\RTSBaseFB
- будет использоваться для хранения активной базы.
C:\RTSArchive
- будет использоваться для хранения архивной базы.
Настройка сервера Firebird SQL#
Для выполнения команд управления БД необходимо использовать какую-либо утилиту командной строки, потому что утилиты управления выполнены в виде консольных утилит Windows
.
Подсказка
Удобнее всего управление БД осуществлять используя менеджер файлов типа FAR
, который можно скачать по адресу http://www.farmanager.com/, или аналогов.
С помощью любого текстового редактора необходимо отредактировать настройки
Firebird
, которые записаны в файлеC:\FB\firebird.conf
.
Установить:
- DatabaseAccess = Full:
Разрешить доступ ко всем БД на машине.
- Authentication = mixed:
Разрешить использовать учетную запись текущего пользователя для доступа к БД.
Сменить пароль пользователя
SYSDBA
наsys
gsec -user sysdba -pass masterkey -mo sysdba -pw sys
Разрешить текущему пользователю (администратору) автоматически логиниться как администратор БД:
gsec -user sysdba -pass sys -mapping set
Создать пользователей системы.
Пользователь, который будет владеть базой данных и писать в нее данные:
gsec.exe -add rts -pw rts
Пользователь, который будет иметь право читать данные из БД без возможности их изменения:
gsec.exe -add inspector -pw inspector
Установить алиас:
Отредактировать файл
C:\FB\aliases.conf
:
rts = C:\RTSBaseFB\RTS.FDB
rts2 = C:\RTSBaseFB\RTS2.FDB
rtsArch = C:\RTSArchive\RTS.FDB
Предупреждение
При конфигурировании алиаса доступа к файлу БД необходимо использовать файл БД с версией, соответствующей версии Firebird.
В случае если файл БД уже существует и планируется использовать другую версию необходимости Firebird необходимо произвести конвертацию файла БД в соответствующий формат.
Создание пустой БД для SPGT#
Для создания БД можно воспользоваться скриптом Firebird_Initialize.sql
или скачать готовую БД с сайта IngortechSCADA.
Для создания новой БД скриптом необходимо выполнить скрипт инициализации БД:
Скопировать скрипт
C:\RTS\SQLExport\Firebird_Initialize.sql
в каталогC:\RTSBaseFB
Находясь в каталоге
C:\RTSBaseFB
выполнить скрипт командой:
isql.exe -s 3 -b -i "Firebird_Initialize.sql"
В результате выполнения на экран будет выведено:
C:\RTSBaseFB>isql.exe -s 3 -b -i "Firebird_Initialize.sql"
Use CONNECT or CREATE DATABASE to specify a database
В случае успешного выполнения команды будет создана новая БД C:\RTSBaseFB\RTS.FDB
.
Предупреждение
В случае возникновения каких либо ошибок в выводе на экран будет содержаться сообщение об ошибке.
Пример:
C:\RTSBaseFB>isql.exe -s 3 -b -i "Firebird_Initialize.sql"
Use CONNECT or CREATE DATABASE to specify a database
Statement failed, SQLSTATE = 42000
Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 11, column 1 -)
At line 533 in file Firebird_Initialize.sql
В этом случае необходимо скопировать полученный текст и выслать его разработчику вместе с используемым скриптом Firebird_Initialize.sql
.
Подготовка Firebird к использованию#
В случае, если необходимо обеспечить повышенную защиту доступа к данным сервера FB или если конфигурируется замкнутая система типа «черный ящик» необходимо внести дополнительные ограничения в конфигурационные файлы.
Предупреждение
Эти настройки рекомендуется производить только в том случае, если вы полностью уверены в результате их воздействия.
Для стандартной эксплуатации в режиме шахты или тестового использования системы РТС эти настройки производить не нужно.
Редактирование настроек FB осуществляется в файле C:\FB\firebird.conf
.
В указанном файле необходимо установить:
- DatabaseAccess = None:
Запрет ссылок на какие-либо базы данных, кроме перечисленных в алиасах.
- Authentication = native:
Запрет использования текущего пользователя системы для логина к БД.
Запретить текущему пользователю (администратору) автоматически логиниться как администратор БД:
gsec -user sysdba -pass sys -mapping drop
Создание алиаса ODBC#
Для создания алиаса ODBC
необходимо установить драйвер ODBC
запустив установщик Firebird_ODBC_2.0.0.151_Win32.exe
В стандартном диалоге настройки доступа к данным ODBC
системы создать новый алиас доступа к используемой БД с именем FB
.
В качестве имени пользователя и пароля необходимо указать rts
.
Создание алиаса BDE#
С помощью утилиты dbexplor
создать алиас BDE
для доступа к БД.
При создании алиаса необходимо использовать драйвер доступа Firebird/InterBase(r) driver
.
Если при создании алиаса BDE
в списке доступных драйверов нет нужного драйвера, то необходимо обновить драйвера BDE
.
Подсказка
Полный комплект драйверов можно установить с помощью пакета установки BDE, который можно скачать с сайта IngortechSCADA.
Настройка сервера РТС#
Для корректной работы сервера необходимо внести следующие изменения в настройки сервера системы РТС:
Выбрать алиас, сконфигурированный для доступа к БД FB.
Указать имя и пароль пользователя для доступа к БД в значение
rts
.Выбрать шаблон доступа к БД Сервер Interbase или аналог с единой БД значений и хранением конфигурации.
Установить настройку Размер кеша SQL запросов в величину «0».
Использование утилит доступа к базе данных#
В системе РТС существует две утилиты, которые организуют специальный доступ к БД:
|
Утилита предназначенная для сохранения конфигурации в БД. |
|
Утилита предназначенная для просмотра значений из долговременного архива. |
Предупреждение
Символы ХХХ в названии обозначают тип используемой БД.
Для работы с БД Firebird SQL
предназначены утилиты ExportIB.exe
и rtSQLInspectorFB.exe
соответственно.
Фактически, для каждой из утилит может быть использовано много различных программ, каждая из которых предназначена для использования с какой-либо специфической БД.
Настройка ExportIB.exe#
Для работы утилиты ExportIB.exe
с БД необходимо указать следующие настройки:
Указать имя алиаса для доступа к БД в значение
FB
.Указать имя и пароль пользователя в значение
rts
.
Настройка rtSQLInspectorFB.exe#
Для работы утилиты rtSQLInspectorFB.exe
с БД необходимо указать следующие настройки:
Указать имя алиаса для доступа к БД в значение
FB
.Указать имя и пароль пользователя в значение
inspector
.