Использование Firebird SQL#

Firebird SQL - это база данных (БД) с возможностью сохранения данных измерений, журналов и структурированных конфигураций.

Базы данных в формате Firebird используются следующими программами:

Утилита

Название

Назначение

ExportIB.exe

Экспорт конфигурации

Сохранение в базе данных журналов и конфигураций.

rtSQLInspectorFB.exe

АРМ Инспектора

Просмотр данных Черного ящика.

rtVarSrv.exe

Сервер РТС

Сохранение данных измерений.

Эта БД может использоваться в двух режимах:

  1. Сохранение данных измерений.

    В этом режиме структура базы содержит только данные о значениях переменных.

    Если в базе планируется сохранять только значения переменных, то необходимо использовать шаблон запросов БД: Сервер Interbase или аналог (раздельные БД значений, хранение данных).

  2. Сохранение данных измерений, конфигураций и журналов.

    В этом режиме структура базы данные о значениях переменных, конфигурацию и текст журналов в форме. которые обеспечивают возможность использования этих данных в стороннем ПО.

    В этом режиме необходимо использовать шаблон запросов БД: Сервер 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 и позднее

В случае возникновения подобной ошибки можно предпринять следующие действия:

  1. Использовать версию Firebird соответствующую версии файла БД.

  2. Конвертировать файл БД другой версии в ту, которую поддерживает нужная версия сервера Firebird.

Для конвертации файла базы данных, необходимо осуществить следующие действия:

  1. Установить ПО Firebird той версии, которая умеет работать с версией БД.

  2. Установить ПО Firebird той версии, которая будет использоваться при работе.

  3. Создать резервную копию файла БД используя Firebird из п.1.

  4. Восстановить файл БД из резервной копии используя Firebird из п.2.

Порядок выполнения действий

Предположим, что нам необходимо конвертировать базу данных расположенную в файле E:RTSBase_FBRTS.FDB из формата 11 (Firebird 2.5) в формат 13 (Firebird 4.0). Для этого произведем следующие действия.

  1. Если на компьютере установлена и запущена какая-либо версия Firebird необходимо остановить его сервер.

    Для этого необходимо выполнить команду instsvc.exe stop из каталога текущей версии Firebird.

  2. Устанавливаем необходимые версии Firebird.

    При установке необходимо выбрать разные каталоги для разных версий Firebird.

    Пусть актуальная версия Firebird (4.0) установлена в каталог C:fb, а версия поддерживающая файл БД (2.5) в каталог C:fb25.

  3. Запускаем сервер Firebird, поддерживающий файл баз данных: C:fb25bininstsvc.exe start

    В случае успешного запуска в консоли будет выведено:

    Service "Firebird Server - DefaultInstance" successfully started.
    

    Если в консоли выведено сообщение об ошибке, значит уже запущена другая версия Firebird, которую необходимо остановить.

  4. Создаем резервную копию файла БД, для чего переходим в каталог E:RTSBase_FB и выполняем команду:

    C:\fb25\bin\gbak.exe -b RTS.FDB RTS.FDB.backup -user SYSDBA -password masterkey
    

    При этом в параметрах -user и -password необходимо указать имя и пароль администратора Firebird, либо пользователя владельца файла БД.

  5. Останавливаем одну версию сервера Firebird и запускаем другую.

    C:\fb25\bin\instsvc.exe stop
    C:\fb\instsvc.exe start
    
  6. Создаем новый файл БД из файла резервной копии.

    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.

../_images/1.png

Установить Firebird в виде «SuperServer».

../_images/2.png

Настроить окружение для сервера, для этого добавить в переменную PATH путь для утилит C:\FB\bin.

../_images/3.png

Создать каталоги:

C:\RTSBaseFB - будет использоваться для хранения активной базы.

C:\RTSArchive - будет использоваться для хранения архивной базы.

Настройка сервера Firebird SQL#

Для выполнения команд управления БД необходимо использовать какую-либо утилиту командной строки, потому что утилиты управления выполнены в виде консольных утилит Windows.

Подсказка

Удобнее всего управление БД осуществлять используя менеджер файлов типа FAR, который можно скачать по адресу http://www.farmanager.com/, или аналогов.

  • С помощью любого текстового редактора необходимо отредактировать настройки Firebird, которые записаны в файле C:\FB\firebird.conf.

  1. Установить:

DatabaseAccess = Full:

Разрешить доступ ко всем БД на машине.

Authentication = mixed:

Разрешить использовать учетную запись текущего пользователя для доступа к БД.

  1. Сменить пароль пользователя SYSDBA на sys

gsec -user sysdba -pass masterkey -mo sysdba -pw sys
  1. Разрешить текущему пользователю (администратору) автоматически логиниться как администратор БД:

gsec -user sysdba -pass sys -mapping set
  1. Создать пользователей системы.

  • Пользователь, который будет владеть базой данных и писать в нее данные:

gsec.exe -add rts -pw rts
  • Пользователь, который будет иметь право читать данные из БД без возможности их изменения:

gsec.exe -add inspector -pw inspector
  1. Установить алиас:

  • Отредактировать файл 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.

Для создания новой БД скриптом необходимо выполнить скрипт инициализации БД:

  1. Скопировать скрипт C:\RTS\SQLExport\Firebird_Initialize.sql в каталог C:\RTSBaseFB

  2. Находясь в каталоге 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

../_images/4.png

В стандартном диалоге настройки доступа к данным ODBC системы создать новый алиас доступа к используемой БД с именем FB.

В качестве имени пользователя и пароля необходимо указать rts.

../_images/5.png

Создание алиаса BDE#

С помощью утилиты dbexplor создать алиас BDE для доступа к БД.

../_images/6.png

При создании алиаса необходимо использовать драйвер доступа Firebird/InterBase(r) driver.

../_images/7.png

Если при создании алиаса BDE в списке доступных драйверов нет нужного драйвера, то необходимо обновить драйвера BDE.

Подсказка

Полный комплект драйверов можно установить с помощью пакета установки BDE, который можно скачать с сайта IngortechSCADA.

Настройка сервера РТС#

Для корректной работы сервера необходимо внести следующие изменения в настройки сервера системы РТС:

  • Выбрать алиас, сконфигурированный для доступа к БД FB.

  • Указать имя и пароль пользователя для доступа к БД в значение rts.

  • Выбрать шаблон доступа к БД Сервер Interbase или аналог с единой БД значений и хранением конфигурации.

  • Установить настройку Размер кеша SQL запросов в величину «0».

../_images/8.png

Использование утилит доступа к базе данных#

В системе РТС существует две утилиты, которые организуют специальный доступ к БД:

ExportХХХ.exe

Утилита предназначенная для сохранения конфигурации в БД.

rtSQLInspectorХХХ.exe

Утилита предназначенная для просмотра значений из долговременного архива.

Предупреждение

Символы ХХХ в названии обозначают тип используемой БД.

Для работы с БД Firebird SQL предназначены утилиты ExportIB.exe и rtSQLInspectorFB.exe соответственно.

Фактически, для каждой из утилит может быть использовано много различных программ, каждая из которых предназначена для использования с какой-либо специфической БД.

Настройка ExportIB.exe#

Для работы утилиты ExportIB.exe с БД необходимо указать следующие настройки:

  • Указать имя алиаса для доступа к БД в значение FB.

  • Указать имя и пароль пользователя в значение rts.

../_images/11.png

Настройка rtSQLInspectorFB.exe#

Для работы утилиты rtSQLInspectorFB.exe с БД необходимо указать следующие настройки:

  • Указать имя алиаса для доступа к БД в значение FB.

  • Указать имя и пароль пользователя в значение inspector.

../_images/9.png