Установка Firebird под Windows. Установка субд firebird Установка firebird 2.5

Обратите внимание на то, что упоминаемая в некоторых руководствах утилита instreg , которая используется для регистрации (и разрегистрации) инсталляции Firebird в реестре Windows, в случае использования на одном сервере нескольких экземпляров Firebird 2.5 использоваться категорически не должна. В противном случае корректная совместная работа нескольких экземпляров Firebird на одном сервере может быть нарушена. Если в системе всё же по какой-то причине раньше использовалась утилита instreg, или просто выполнялась установка «дефолтного» экземпляра Firebird с помощью стандартного инсталлятора (exe -файл), в ходе работы которого вызывается instreg, то перед запуском нескольких служб с разными экземплярами Firebird, нужно предварительно удалить информацию об инсталляции Firebird с помощью команды instreg remove .

В нашем примере настройка служб Firebird выполняется на чистой системе и без применения инсталлятора, поэтому предварительное выполнение команды instreg remove нам не потребуется.

Итак, приступим к регистрации служб экземпляров Firebird.

Открываем командную строку с правами Администратора, переходим в каталог с исполняемыми файлами первого экземпляра Firebird и выполняем команду регистрации службы экземпляра с помощью утилиты instsvc (запросить информацию о ключах утилиты и её версии можно запуском с опцией -z ):

Cd /d D:\FBInst1\Bin\bin instsvc -z instsvc install -superserver -demand -name Instance1

В команде регистрации мы используем следующие опции:

    install – установка нового экземпляра Firebird

    superserver – режим работы экземпляра (один из трёх возможных режимов для Firebird 2.5)

    demand – создаваемая служба настраивается на ручной запуск (это нужно для того, чтобы перед запуском службы выполнить её предварительную натсройку)

    name – имя экземпляра Firebird, который будет обслуживаться создаваемой службой.

В ходе выполнения последней команды мы должны получить сообщение об успешной регистрации службы.

По аналогии выполняем регистрацию службы второго экземпляра Firebird, обязательно предварительной перейдя в соответствующий каталог:

Cd /d E:\FBInst2\Bin\bin instsvc install -superserver -demand -name Instance2

Теперь перейдём в оснастку управления службами Windows (services.msc ) и убедимся в том, что в перечне служб появились две новых службы и обе они находятся в незапущенном состоянии.

Откроем свойства службы первого экземпляра Firebird и на вкладке General настроим автоматический тип запуска службы

Переключимся на вкладку Log On и выберем ранее созданную нами сервисную учётную запись gMSA , от имени которой должна выполняться данная служба. Обратите внимание на то, что так как используется учётная запись gMSA, в конце имени обязательно должен присутствовать символ «$», а поле с паролем при этом следует оставить пустым (ОС сервера будет сама аутентифицировать данную учётную запись в домене). При сохранении настроек по кнопке Apply мы получим сообщение о том, что для указанной нами учётной записи автоматически добавлено право входа в систему в качестве службы (Log On As A Service )

Переключимся на вкладку Recovery и настроим автоматический перезапуск службы в случае её краха. Правила перезапуска, разумеется, каждый настраивает по своему усмотрению. В нашем примере оставлено две попытки перезапуска, а третья и последующие попытки отключены (чтобы не вводить службу в бесконечный цикл попыток перезапуска в случае каких-то существенных проблем).

По аналогии настраиваем вторую службу, которая была создана для второго экземпляра Firebird. Для второй службы все настройки могут быть аналогичными за исключением учётной записи, от имени которой она будет запускаться. После того, как параметры запуска служб экземпляров Firebird настроены, попробуем выполнить их запуск.

Службы должны запускаться без длительных задержек и ошибок.

Убедимся в том, что после запуска служб от каждого из экземпляров Firebird в системе появился TCP -прослушиватель для принятия клиентских подключений на ранее заданном порту.

Netstat -na | findstr 305

Не забываем открыть соответствующие порты в Windows Firewall. Оперативно сделать это можно, например, с помощью PowerShell:

New- NetFirewallRule -DisplayName "Firebird Server (Instance1)" - Direction "Inbound" ` - Protocol "TCP" - Action "Allow" - LocalPort "3051" New- NetFirewallRule -DisplayName "Firebird Server (Instance2)" - Direction "Inbound" ` - Protocol "TCP" - Action "Allow" - LocalPort "3052"

Теперь оба развёрнутых экземпляра Firebird можно считать запущенными и готовыми к работе.

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

В нашей практике система Storehouse Explorer на базе сервера Firebird использовалась для автоматизации холдинга из 50 магазинов по всей России. Размер базы данных превышал 30 Гб, база содержала информацию за 10 лет и одновременно обслуживала от 70 до 120 пользователей (проведение торговых операций и аналитика).

>> Скачать демо-версию <<

Установка сервера Firebird на UNIX имеет свои особенности, которые мы бы хотели отразить в данной статье.

Автоматизация магазина на базе сервера Firebird 2.5 на POSIX (UNIX, LINUX) платформах

Предисловие

В статье описывается установка сервера Firedird 2.5.2 в POSIX (Unix-подобных) операционных системах, таких как Linux, Unix.

Перед установкой необходимо учесть следующее.

  1. Для установки сервера Firebird Вам понадобятся права пользователя root.
  2. Если вы устанавливаете Firebird на Линукс, то прежде чем производить установку вы должны убедиться, что в системе имеется run-time библиотека libstdc++.so.5. Если это не так, то следует установить compat-glibc пакет (RedHat, CentOs, OpenSuse, Debian) или libstdc++5 пакет (Mandriva).
  3. Eсли вы планируете установку Firebird c архитектурой SuperServer на Линукс, который поддерживает новую POSIX модель потоков, то следует выбираль NPTL билд Firebird.

I. Выбор дистрибутива

Существует достаточно много дистрибутивов Firebird различных версий и разработанных для разных операционных систем.
На момент написания этой статьи доступен стабильный билд этого сервера версии 2.5.2, который может работать на
32-x и 64-х разрядных платформах Windows, LINUX и MacOSX.
Однако прежде чем выбрать нужный дистрибутив необходимо сделать небольшое отступление.
Существует несколько вариантов исполнения или вариантов архитектуры сервера Firebird, в именно Classic, SuperServer
и Еmbeded. Различаются они способом использования машинных и сетевых ресурсов. Не вдаваясь глубоко в подробности отметим, коротко, особенности этих архитектур:
Classic - формально можно описать формулой "n коннектов к базе - n процессов на сервере", т.е. каждый коннект к базе

запускает свой *процесс* на сервере. Работает это так. На POSIX платформах запускается [x]inetd демон, который
слушает порт (по умолчанию это порт 3050, но при необходимости, можно назначить другой). Этот демон запускает для каждого успешного коннекта *отдельный* процесс fb_inet_server. Под каждый процесс расходуются определенные ресурсы сервера, создается отдельный кеш памяти.

Более экономно расходует ресурсы компьютера архитектура SuperServer.
SuperServer можно коротко описать формулой "n коннектов к базе - один процесс и n *потоков* на сервере". В POSIX системах это процесс fbserver. Суперсервер - это многопоточное приложение, в отличие от архитектуры Classic. Каждое соединение обслуживается в отдельном потоке.
Embeded - это архитектура, которая работает в составе отдельного приложения и в обычном понимании не является "полным сервером", т.е. не предназначена для работы как сервер, который обслуживает множество коннектов.
Скорее всего, вы будете делать выбор между архитектурой Classic и Cуперсервер. Если нет возможности глубоко вдаваться в подробности, то можно сделать выбор произвольно. Формат самой базы данных никак не привязан к конкретной архитектуре Сlassic или Superserver и всегда есть возможность, в случае необходимости, переустановить сервер, выбрав другую архитектуру.
И хотя, скорее всего, вам подойдет любая архитектура из этих двух, есть мнение, что для новичков, которые только начали работать с Firebird, архитектура Classic более предпочтительна для изучения и экспериментов с Firebird, как более устойчивая к неверным действиям пользователя.
Заметим, что Суперсервер использует общий кэш памяти и может иметь некоторые преимущества в случае одновременной работы большого числа пользователей. Cуперсервер ограничен по размеру используемой оперативной памяти, на момент написания статьи он не может использовать память свыше 2Gb.
Архитектуре Classic можно также отдать предпочтение, если "железо" использует несколько процессоров и имеет значительную оперативную память (> 2 GB).
В данной статье не стоит задача подробного анализа и сравнения этих архитектур, более подробную информацию об этом можно найти в интернете.

II. Выбор метода установки

Для установки Firebird вы должны иметь права пользователя root.
Сервер Firebird относится к числу бесплатных продуктов, дистрибутив для его установки можно скачать с официального сайта Firebird Foundation www.firebird.org .
Дистрибутивы сформированы как файлы *.rpm или *.tar.gz, например:

FirebirdCS-2.5.2.26539-0.i686.rpm

FirebirdCS-2.5.2.26539-0.i686.tar.gz

Необходимо отметить, что не все сборки Linuх поддерживают rpm-установку, уточнить это можно в документации к платформе в разделе "Менеджер rpm-пакетов"("RPM Package Manager"). В таких случаях рекомендуется использовать "tar.gz" файлы.
В интернете есть описания ручных способов установки путем распаковки архива и копирования файлов, однако такие способы, при наличии инсталляторов от разработчика, не рекомендуются.

III. Установка сервера Firebird 2.5

Для примера, возьмем установку сервера архитектуры Classsic.
Войдите в систему под пользователем root.
Для инсталяции *.rpm файла следует набрать:

$rpm -ivh FirebirdCS-2.5.2.26539-0.i686.rpm

Для инсталяции *.tar.gz файла следует набрать:

$tar -xzf FirebirdCS-2.5.2.26539-0.i686.tar.gz

$cd FirebirdCS-2.5.2.26539-0.i686.tar.gz

После запуска скриптов установки будут произведены следующие действия:

  1. Будет сделана попытка остановить все работающие сервера Firebird.
  2. Если еще не созданы, будут созданы пользователь "firebird " и группа "firebird ".
  3. В каталог /opt/firebird будет установлено программное обеспечение, в каталоге /usr/lib будут созданы ссылки
  4. для библиотек, в каталог /usr/include будут помещены заголовки файлов.
  5. В каталог /etc/services будет добавлена запись gds_db для порта 3050, если такой записи еще нет.
  6. Будут добавлены localhost.localdomain и HOSTNAME в каталог /etc/gds_hosts.equiv .
  7. Если устанавливается SuperServer, то будет установлен только скрипт запуска сервера /etc/rc.d/init.d/firebird .
  8. Если устанавливается Classic, то будет установлен скрипт запуска /etc/xinet.d/firebird или, для некоторых младших версий inetd-систем, будет добавлена запись в /etc/inetd файл.
  9. Будут прописаны новые ссылки в /usr/bin для скрипта init.d и будет создана конфигурационная запись сервера Firebird в etc/rc.config .
  10. Будет выполнен старт сервера/службы и Firebird должен стартовать автоматически.
  11. Будет сгенерирован случайным образом пароль пользователя SYSDBA и записан в файл /opt/firebird/SYSDBA.password .
  12. Будет добавлен алиас для тестовой базы данных employee.fdb в aliases.conf.

На этом этапе можно проверить корректность установки сервера Firebird. Для этого нам потребуется пароль учетной записи SYSDBA, который можно извлечь из файла /opt/firebird/SYSDBA.password.
Наберем в командной строке:

$cd /opt/firebird/bin

$./isql -user sysdba -password

SQL>connect localhost:employee.fdb;

SQL>select * from sales;

По этим командам сервер Firebird соединяется с тестовой базой данных employee.fdb и извлекает все записи из таблицы sales.
Firebird сервер, по умолчанию, запускается от имени пользователя "firebird". Ранее, по умолчанию, сервер выполнялся от имени "root". Запуск сервера от имени "root" - не очень правильно с точки зрения безопасности , поскольку, у пользователя "root" самые высокие права в системе и он может создавать и удалять любые файлы и каталоги в пределах всей файловой системы. Такие права для сервера Firebird являются излишними, поэтому следует проверить и настроить конфигурацию сервера для работы от имени пользователя "firebird".

Для этого:

  1. пользователь "firebird" должен иметь права на запись в каталог, в котором будут создаваться базы данных.
  2. параметр DatabaseAccess из файла /opt/firebird/firebird.conf должен быть настроен таким образом, чтобы запретить доступ ко всем файлам и каталогам, за исключением тех, которые предназначены для хранения баз данных. Если в файле aliases.conf мы создаем алиас для файла, то в файле firebird.con мы должны дать к этому файлу доступ.
  3. рекомендуется (желательно, но не обязательно) всегда использовать алиасы для указания абстрактных ссылок на файлы баз данных, не указывая их конкретное физическое расположение.

На примере создания пустой базы данных test.fdb убедимся, что создание сервера Firebird прошло успешно.
Существует не один способ создания пустой базы, (например на клиенте, с помощью приложения IBExpert),
здесь предлагается самый простой способ, штатными средствами Firebird на сервере.
Каталог для размещения выберем var/firebird .
Итак, надо:
1. проверить наличие и при отсутствии создать каталог /var/firebird. Если владельцем этого каталога является не пользователь "firebird", то следует сменить владельца на "firebird":

$mkdir -p /var/firebird

$chown firebird:firebird /var/firebird

2. В файле /opt/firebird/firebird.conf добавить разрешение для создания базы в каталоге /var/firebird.

DatabaseAccess = Restrict /var/firebird

3. создать базу

$/opt/firebird/bin/isql -u SYSDBA - p

SQL>connect "/var/firebird/test.fdb";

В практической работе с сервером Firebird могут пригодиться некоторые инструменты:
- changeDBAPassword.sh - скрипт для смены пароля SYSDBA.
- createAliasDB.sh - скрипт для создания пустой базы данных, создания алиаса и его записи в aliases.conf;
Пример использования:

$createAliasDB.sh

IV. Если что-то пошло не так...

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

V. Установка Firebird на платформах Solaris, FreeBSD, Debian

На момент написания статьи установка Firebird 2.5 для операционных систем Solaris, FreeBSD, Debian пока не доступна, используйте предыдущие версии Firebird, например 2.0.

(c) Милькевич Тарас
Polaris-Soft team,

Литература:

1. Firebird 2 Migration & Installation, Helen Borrie (Collator/Editor) 6 April 2008 - Document v. mi210_20 - for Firebird 2.1.
2. Мир Interbase. Архитектура, администрирование и разработка приложений баз данных в Interbase/Firebird/Yaffil. Издание 2-е, дополненное. Алексей Ковязин, Сергей Востриков, КУДИЦ-ОБРАЗ, Москва 2003.

Запуск Firebird на Linux/UNIX

Суперсервер

Каталог инсталляции по умолчанию /opt/firebird. В каталоге /bin находится в двоичном формате сервер Firebird fbserver (ibserver для Firebird 1.0.x), который запускается как процесс-демон в Linux/UNIX. Он запускается автоматически после инсталляции посредством RPM или скрипта и каждый раз при перезагрузке сервера запуском скрипта демона firebird, находящегося в /etc/rc.d/init.d (или /etc/init.d в SuSE), который вызывает утилиту командной строки Firebird Manager - fbmgr.bin. Firebird Manager может быть использована из командной строки для запуска и остановки процесса вручную.

Запуск сервера

Если вы по разным причинам запустили Firebird вручную, соединитесь с ним как пользователь root или firebird. Запомните, какую учетную запись вы использовали при запуске fbserver, потому что все созданные объекты будут принадлежать пользователю с этой учетной записью. Если позже другой пользователь запустит процесс с использованием другой учетной записи пользователя, то эти объекты будут ему недоступны.

Для запуска процесса выполните из командной строки следующую команду:

./fbmgr.bin -start -forever

./ibmgr -start -forever

Переключатель -forever означает, что Guardian будет управлять запуском. При использовании Guardian процесс сервера будет заново запущен, если он по каким-либо причинам завершится аварийно.

Для запуска сервера без использования Guardian введите:

./fbmgr.bin -start -once

Для версий Firebird, предшествующих 1.5, выполните:

./ibmgr -start -once

Переключатель -once означает, что если сервер будет аварийно завершен, перезапустить его можно будет только вручную.

Остановка сервера

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

Переключатель -shut отменяет все текущие транзакции и прекращает работу сервера немедленно.

Вам не требуется быть подключенным как пользователь root для остановки сервера Firebird fbmgr, но вы должны иметь полномочия пользователя SYSDBA. Выполните следующую команду.

./fbmgr.bin -shut -password <пароль SYSDBA>

Используйте команду для версий, предшествующих 1.5:

./ibmgr.bin -shut -password <пароль SYSDBA>

Управляемое завершение работы

На этой платформе Firebird не имеет утилиты для подсчета количества пользовательских соединений с базой данных для Суперсервера. Если вам нужно предоставить клиентам интервал времени для завершения работы и корректного отключения, завершайте работу индивидуальных баз данных с использованием инструмента gfix с переключателем -shut и одним из доступных аргументов для управления отключением. (См. разд. "Останов базы данных" в главе 39.)

Другие команды fbmgr

Синтаксис

Из командной строки:

./fbmgr.bin -команда [-режим [параметр] ...]

Альтернативно вы можете стартовать интерактивную сессию fbmgr или ibmgr из командной строки (например, перейдя в режим с подсказкой). Наберите:

./fbmgr <нажмите Return/Enter>

для того чтобы перейти к следующей подсказке:

В режиме с подсказкой синтаксис команд:

FBMGR> команда [-режим [параметр] ...]

Например, вы можете запустить сервер одним из следующих способов. Из командной строки:

./fbmgr -start -password пароль В режиме с подсказкой:

FBMGR> start -password пароль

Переключатели fbmgr

В табл. 4.1 представлен список переключателей fbmgr и ibmgr, доступных из командной строки и из режима с подсказкой.

Таблица 4.1. Переключатели fbmgr/ibmgr

Переключатель

Аргумент

Другие переключатели

Описание

User, -password

Запускает fbserver, если он не был еще запущен

User, -password

Останавливает fbserver

Показывает хост и пользователя

Имя пользователя

SYSDBA; используется с переключателями -start и -stop, если пользователь системы не является root или эквивалентным ему

Пароль SYSDBA

Используется с переключателями -start и -stop, если пользователь системы не является root или эквивалентным ему

Выводит короткий текст помощи fbmgr

Используется для выхода из режима с подсказками

Из книги Fedora 8 Руководство пользователя автора

1.1.3.1. Запуск программы установки Linux Первым делом нужно настроить компьютер на загрузку с компакт диска. Обычно при запуске компьютера вы видите на экране сообщение:Press DEL to enter SETUP или Press F2 to enter SETUPВ программе SETUP нужно настроить компьютер на загрузку с CD/DVD (рис. 1.2), Если вы

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

Глава 3. Первый запуск ОС Linux 3.1. Загрузка ОС Linux Итак, инсталляция Linux завершена, и вы перезапускаете компьютер. Если Linux - единственная операционная система, установленная на вашем компьютере (а, значит, загрузчик LILO размещается в главной загрузочной записи - MBR), то после

Из книги 200 лучших программ для Linux автора Яремчук Сергей Акимович

П5. К главе 3 "Первый запуск ОС Linux" 1. На странице Алексея Махоткина (http://alexm.here.ru/manpages-ru/index.html) можно найти переводы man-страниц на русский язык. 2. Guido Gonzato, "Из DOS/Windows в Linux HOWTO", перевод Alex Ott, v1.3.2, 22 Февраля 1999 (http://linux.webclub.ru/howtorus/doswinhow/dos-win-to-linux-howto.html). Это очень полезный материал

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Запуск игр Windows под Linux Для Linux существует мало игр. Неказуальных игр, позволяющих убить время, в Linux предостаточно, при установке дистрибутива пользователь найдет их несколько десятков. Есть и проекты OpenSource, предлагающие довольно серьезные игры в самых разообразных

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

17.4.4. Запуск примеров домена Unix Две предыдущие программы-примера (серверная и клиентская) сконструированы для совместной работы. Запустите сервер с одного терминала, после этого активизируйте клиента из другого терминала (но в том же самом каталоге). При вводе строк в

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

1.8. Первый запуск Linux Если вы выбрали для входа в систему графический режим (или инсталлятор выбрал его сам, ни о чем не спросив), то вы увидите графический экран с полем ввода имени и пароля. Зарегистрируйтесь в системе (лучше под тем именем, которое завели для обычного

Из книги Linux программирование в примерах автора Роббинс Арнольд

Запуск сервера Firebird в Windows Суперсервер Выполняемая программа Суперсервера Firebird - fbserver.exe. Хотя он может запускаться и как самостоятельная программа, он также может находиться под управлением Guardian - fbguard.exe. Guardian обеспечивает возможность эмулировать автоматический рестарт

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

Инсталляция клиента Linux/UNIX Операционные системы POSIX являются весьма своеобразными. Присутствующие в этом разделе советы должны быть полезными в качестве руководства по инсталляции клиентов для большинства разновидностей Linux и UNIX, однако это область, где сомнения

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

1.1. Модель файловой системы Linux/Unix Одной из движущих целей первоначального проекта Unix была простота. Простые понятия легко изучать и использовать. Когда понятия переведены в простые API, легко проектировать, писать и отлаживать простые программы. Вдобавок, простой код

Из книги Разработка ядра Linux автора Лав Роберт

Из книги Linux Mint и его Cinnamon. Очерки применителя автора Федорчук Алексей Викторович

Из книги автора

4.1. Введение в модель ввода/вывода Linux/Unix Модель API Linux/Unix для ввода/вывода проста. Ее можно суммировать четырьмя словами. открыть, прочитать, записать, закрыть. Фактически, это имена системных вызовов: open(), read(), write(), close(). Вот их объявления:#include /* POSIX */#include

Из книги автора

Установка InterBase на платформе Linux/Unix Установка InterBase под Linix немного сложнее, чем на Windows, если вы не являетесь знатоком этой ОС. Для Linux InterBase (а также Firebird) существуют два варианта архитектуры сервера - SuperServer и Classic. Про их различия, а также про достоинства и недостатки

Из книги автора

Часть I Сложные вопросы программирования в среде

Из книги автора

Ядро Linux в сравнении с классическими ядрами Unix Благодаря общему происхождению и одинаковому API, современные ядра Unix имеют некоторые общие характерные черты. За небольшими исключениями ядра Unix представляют собой монолитные статические бинарные файлы. Это значит, что они

Из книги автора

Ресурсы по Linux и UNIX вообще Здесь в первую очередь следует назвать Linux по-русски - сайт Виктора Костромина, который он ведёт с 1999 года. И который, с одной стороны, является самым полным каталогом ссылок на русскоязычные ресурсы по нашей теме, а сдругой стороны, содержит

Firebird SQL Server — сервер баз данных основанный на открытом исходном коде InterBase 6.0. Дистрибутивы Firebird существуют под Windows, Linux, Unix, Solaris, MacOS, под 32-х и 64-х битную архитектуру. Firebird SQL Server распространяется бесплатно и не имеет лицензионных ограничений.

Какую версию Firebird выбрать?

На сегодняшний момент новейшая версия — Firebird 3.0. Стабильная версия Firebird 2.5.

Установка Firebird — выбор типа сервера

Сервер Firebird SQL доступен в 3-х вариантах:

  • Firebird Super Server
  • Firebird Classic Server
  • Firebird Embedded

Firebird Super Server

Firebird Super Server — все клиентские подключения обслуживаются одним серверным процессом, имеется общий клиентский кеш. За счет этого достигается меньший расход ресурсов на обслуживание клиентов. Недостатком Firebird Super Server является отсутствие возможности задействовать несколько процессоров для работы Firebird сервера.

Firebird Classic Server

Firebird Classic Server — на каждое клиентское подключение создает отдельный серверный процесс. Архитектура Firebird Classic Server более надежна, т.к. сбой одного серверного процесса не вызывает отказ в обслуживании всех клиентов. Кроме того, Firebird Classic позволяет задействовать многопроцессорную архитектуру. При установке Firebird вы можете выбрать между версиями Firebird Super Server или Firebird Classic Server .

Firebird Embedded

Firebird Embedded Server — предназначен для встраиваемых баз данных. Состоит из одной dll — fbembed.dll , которая включает в себя клиент и сервер Firebird Super Server. Firebird Embedded не требует установки на клиентской рабочей станции. Достаточно просто скопировать fbembed.dll и еще несколько файлов клиенту на компьютер.

Недостаток Firebird Embedded — это невозможность одновременного подключения к одной БД нескольких клиентов. После успешного подключения Firebird Embedded блокирует файл базы данных для монопольного доступа.

Firebird Embedded Server распространяется отдельным дистрибутивом.

Если затрудняетесь с выбором

Если вы не уверены в выборе типа установки Firebird , то используйте Firebird Super Server. В дальнейшем вы без труда сможете изменить архитектуру сервера.

Начало работы с Firebird

Для знакомства с Firebird можно использовать тестовую базу данных employee.fdb. Она входит в установочный комплект Firebird и расположена в папке Program Files\Firebird\Firebird\examples\empbuild\ .

Создание новой базы Firebird

Для создания пустой базы Firebird:

  • запустите утилиту C:\Program Files\Firebird\Firebird\bin\isql.exe
  • выполните инструкцию создания базы данных:
Use CONNECT or CREATE DATABASE to specify a database SQL> CREATE DATABASE ‘localhost:d:\temp\test.fdb’ user ‘SYSDBA’ password ‘masterkey’ DEFAULT CHARACTER SET WIN1251;

В ISQL каждое выражение завершается точкой с запятой.

Проверить подключение можно, выполнив запрос:

SQL> select MON$DATABASE_NAME from MON$DATABASE;

Если все сделано правильно, SQL запрос вернет путь к подключенной базе данных:

========================================================================== D:\TEMP\TEST.FDB

Безопасность Firebird

  • Firebird хранит всех пользователей в одной служебной базе данных security.fdb.
  • Начиная с Firebird 2.1 реализована поддержка SSPI аутентификации средствами Windows. Администраторы домена на уровне БД определяются как суперпользователи SYSDBA.
  • В Firebird 3.0 планируется реализовать возможность хранения пользователей в клиентской базе данных.

Пользователь SYSDBA. Смена пароля по умолчанию

SYSDBA — это административный пользователь Firebird с исключительными правами. Пароль по умолчанию: masterkey . Для того чтобы сменить пароль, используйте утилиту gsec из состава Firebird:

C:\Program Files\Firebird\bin>gsec GSEC> modify SYSDBA -pw NEW_PASS

При помощи утилиты gsec можно создавать, удалять, модифицировать и просматривать пользователей. Полный список команд можно получить, набрав help.

Подключение к Firebird из клиентского приложения

Для начала скачайте и установите пакет IBProvider Professional Edition .

IBProvider Professional Edition — это набор COM-компонент, которые позволяют работать с любыми версиями Firebird и InterBase. Компоненты поддерживаются большинством средств разработки: Delphi, C++ Builder, Visual C++, .Net Framework, C#, Visual Basic, VBScript, VBA и др.

Для проверки подключения к Firebird напишем простой сценарий на языке VBScript . Создайте пустой файл с расширением vbs и вставьте в него следующий код, указав правильный путь к базе данных:

Dim cn, cmd, rs, i Set cn = CreateObject ("ADODB.Connection") cn.Open "Provider=LCPI.IBProvider.3;" & _ "Data Source=localhost:d:\temp\test.fdb; " & _ "User Id=SYSDBA;" & _ "password=masterkey;" & _ "ctype=win1251;" & _ "auto_commit=true" set rs = cn.execute("select * from MON$ATTACHMENTS") do while not rs.EOF for i=0 to rs.Fields.Count - 1 wscript.echo rs(i).Name & "=" & rs(i).Value next rs.MoveNext loop rs.close cn.close

Запустите скрипт на выполнение в режиме командной строки, и вы увидите список активных подключений к БД.

Firebird и VBScript, Visual Basic, VBA

Для доступа к Firebird и InterBase из VBScript , VBA , Visual Basic используется библиотека ADO (ActiveX Data Objects). Множество примеров работы с этой библиотекой вы найдете в документации: примеры InterBase, Firebird VBScript, VBA, Visual Basic .

Firebird и Delphi

IBProvider предлагает несколько способов работы с InterBase и Firebird из Delphi:

  • dbGo (ADO Express) компоненты, работающие через библиотеку ADO.
  • прямой доступ к COM-интерфейсам ADO, минуя компоненты dbGo.
  • прямой доступ к COM-интерфейсам OLE DB при помощи сторонних VCL-компонент (OLE DB Direct/OLE DB Express).

Firebird и.Net

Для доступа к Firebird из.Net используется библиотека ADO.NET. На сайте IBProvider опубликовано большое пошаговое руководство, посвященное работе с Firebird в Visual Studio .Net (ADO.NET) .

Дополнительные материалы по теме:

Firebird и C++

В состав IBProvider Professional Edition входит C++ библиотека, которая предоставляет самый быстрый способ работы с OLE DB провайдерами из Visual C++ 2005-2008, а так же из C++ Builder.

Редактирование базы Firebird

В пустой базе данных необходимо создать таблицы, связи между таблицами, первичные ключи, индексы, хранимые процедуры, генераторы и другие объекты. Для редактирования баз данных Firebird вы можете использовать утилиту isql.exe.

Создаем таблицу:

SQL> CREATE TABLE cross_rate CON> (CON> from_currency VARCHAR(10) NOT NULL, CON> to_currency VARCHAR(10) NOT NULL, CON> conv_rate FLOAT NOT NULL, CON> update_date DATE, CON> CON> PRIMARY KEY (from_currency, to_currency) CON>);

Вставляем одну запись и делаем выборку из таблицы:

SQL> INSERT INTO cross_rate VALUES (‘Dollar’, ‘CdnDlr’, 1.3273, ’11/22/93′); SQL> SELECT * from cross_rate; FROM_CURRENCY TO_CURRENCY CONV_RATE UPDATE_DATE ============= =========== ============== =========== Dollar CdnDlr 1.3273000 1993-11-22

Помимо isql существует различные графические утилиты администрирования Firebird .

Утилиты администрирования Firebird

FlameRobin

FlameRobin — поддерживает Firebird. Кросс-платформенная архитектура. Есть редактор SQL, DDL, управление пользователями.
Лицензия: open source, распространяется бесплатно.
Сайт:

IBExpert

IBExpert — Поддерживает Firebird, InterBase, Yaffil. Редакторы DDL и DML. Визуальный построитель запросов. Автозавершение кода, Metadata Extractor, а так же множество других возможностей.
Лицензия: Бесплатный для exUSSR, для остальных: от 179 евро.

Рассмоорим детальный пошаговый а горитм установки сервера Firebird, ррботающегo на платформе Microsoft Windows.

Шгг 1

Загрузите Firebird с официальной страницы сервера либо с , необходим сервер версии 2.1 и выше. Затем запустите исполняемый файл ехе. Появится окно, где Вам необходимо будет выбрать язык установки.

Шагг2

После вого,гкак выбрали язык появляется мастер установки Firebird, который поможет уктановить сервер:

Шаг 3

Здесь нам предоставляется лицензионное соглашение.

Чтобы перейти на следующий шаг необходимо принять условия соглашения. Выбрав "Я принимаю условия соглашения " и нажав "Далее ", мы увидим окно с дополнительной информацией об установке программы:

Шаг 4

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

Шаг 5

На этом шаге нужно выбрать конфигуаации сервера баз данных:

Для установки Firebird на ко пьютеe-сервер (где bудет азмещена сама база данных) укажите " Полная установка сервера и инструментов разработки ":

Кроме того на данном шаге необходимо выбрать конфигурацию Firebird сервера: Classic Server или SuperServer. Чтобы не вдаваться в описание отличий Classic Server и SuperServer, предлагаем вам выбрать тип Firebird сервера по следующим критериям:

Если установка производутся на серверную машину или многмпроцессорную станцию с отидаемым относнтельно большим количеством подключений (более 30), то выбирайте Firebird ClassicмS3rver.

Если число подключений невелико или рабочая станция не достаточно мощная - ставьте SuperServer

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

Шаг 6 г Создание папки в меню Пуск

Шаг 7

На этом этапе установки необходимо выбрать дополнительные параметры для сервера:

o Снимите галочку с "Использовать Guardian для управления сервером ".

o Врберите "Запус ать в качестве Службы ".

Зачем нужен Firebird Guardian?

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

ЕслисВi устанавливаете сервер Firebird на Windows Vista, то галочсу " Установить Апплет Паневи Упр вления " необходимо снять.

Ша 8

Мы выбрали дополнительные задачи для сервера, после этого всё готово к установке - нажимаем Установить :

После завершения процесса появляется окно с информацией, которую рекомендуется прочесть:

Шаг 9 - Запуск Firebird

В конце установки вам предложат запустить службу Firebird SQL Server. Нажмите "Завеешить ". Итак, мы установили сервер на наш компьютер.Чтобт управкять Firebird (останавливать/запускать службы) Вы должны открыть Панель управлнния и двойным щелчком открыть "Firebird 2.1 Server Manager" :