Сервер firebird версии 2.5. Конвертирование базы данных. Замена сервера баз данных Firebird для многопользовательского варианта

Сервер firebird версии 2.5. Конвертирование базы данных. Замена сервера баз данных Firebird для многопользовательского варианта

07.04.2019

Не удивляйтесь малому размеру инсталлятора! Firebird - это полнофункциональная и мощная СУБД, она может обслуживать базы данных размером от нескольких килобайт до многих гигабайт, показывая хорошую производительность и практически не нуждаясь в обслуживании!

Основные характеристики Firebird:

Полная поодержка хранимых процедур и триггеров.
Транзакции, полностью совместимые с концепцией ACID.
Ссылочная целостность.
Версионная архитектура.
Очень небольшой размер.
Мощный внутренний язык для написания хранимых процедур и триггеров (PSQL).
Поддержка внешних пользовательских функций (UDF).
Firebird практически не требует работы системного администратора или позволяет свести ее к минимуму.
Почти не требует настройки - использовать СУБД можно сразу же после ее установки!
Огромное интернет-сообщество пользователей и разработчиков, множество мест, где вы можете получить быструю и бесплатную помощь.
Возможность распространения встроенной в приложение (embedded) версии - замечательно подходит для создания каталогов на CD-ROM, однопользовательских и пробных версий программ.
Десятки специализированных приложений от сторонних разработчиков, включая средства администрирования, репликации, и так далее.
Безопасная запись данных (careful write) - быстрое восстановление после сбоев, отсутствие необходимости в журналировании транзакций!
Большое количество средств доступа к базе данных: native/API, драйверы dbExpress, ODBC, OLEDB, .Net provider, JDBC-драйвер, модули для Python, PHP, Perl, и так далее.
Поддержка большинства распространенных операционных систем, включая Windows, Linux, Solaris, MacOS.
Инкрементные бэкапы
Билды для 32- и 64-разрядных ОС
Полная реализация курсоров в PSQL
Таблицы мониторинга
Триггеры на коннект и транзакции
Временные таблицы
TraceAPI - узнайте, что делается на сервере
Инструменты и компоненты

Графические программы для администрирования баз данных

IBExpert (есть бесплатная версия)
DB Workbench
FlameRobin (open source, версии под Windows и Linux)
EMS SQL Management Studio
Firebird Development Studio
Драйверы и компоненты доступа

Компоненты Delphi

IB Objects
FIBPlus
UIB (Unified InterBase Components)
AnyDAC
IBDAC, UNIDAC
Zeos
MDO
ODBC

Firebird ODBC Driver
EasySoft
OLEDB

IBProvider
Java

JayBird
C++

IBPP
.Net Provider

Firebird .Net Provider
Другие языки программирования

PHP
Python
Perl
Программы для репликации баз данных

IBReplicator
FBReplicator
DBRE

Это очень просто. Размер инсталлятора обычно не превышает 7 MB (зависит от вашей операционной системы), а процесс установки полностью автоматизирован. Вы можете скачать инсталлятор с сайта Firebird.

Обратите внимание, что существует 4 варианта сервера: SuperServer, Classic, SuperClassic и Embedded. Для первого знакомства лучше подходит SuperServer. Classic рекомендуется для многопроцессорных машин, а также в некоторых других специфических случаев. SuperServer имеет разделяемый между всеми соединениями к базе данных кэш и использует потоки для обслуживания каждого соединения, а Classic запускает отдельный процесс с собственным кэшем для независимой работы с каждым отдельным соединением к базе данных.

Embedded - это еще одна, удивительная версия сервера. Она состоит из всего одной библиотеки (DLL) размером около полутора мегабайт, содержащей полностью весь сервер Firebird. Это делает версию Embedded чрезвычайно удобной для распространения, так как в этом случае отсутствует необходимость установки сервера. Она идеальна для создания CDROM-каталогов, демонстрационных версий программ и приложений для однопользовательской работы.

Firebird включает в себя набор консольных программ, позволяющих создавать базы данных, исследовать их характеристки, выполнять операторы SQL и скрипты, производить резервное копирование данных, их восстановление из резервной копии и так далее. Если же более привычными для Вас являются средства, оснащенные графическим интерфейсом (GUI), то в этом случае также имеется множество вариантов для выбора нужной программы на ваш вкус.

Windows-версия сервера может быть запущена как в виде сервиса, так и в виде обычного приложения. Для управления сервером инсталлятор создает специальную иконку в "Панели Управления" операционной системы.

Автоматизация магазина на базе сервера 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.

Для пользователей, уже использующих многопользовательский вариант (МПВ) программы на сервере БД версии 1.5 предлагается выполнить переход одним из трех доступных вариантов .

Если у вас однопользовательский вариант (ОПВ) программы, можете переходить к конвертированию базы данных .

Замена сервера баз данных Firebird для многопользовательского варианта

Сначала нужно заменить сервер баз данных Firebird 1.5 на версию Firebird 2.5.

Прим . Все операции выполняются с правами администратора системы.

Операцию по смене версии сервера нужно производить после закрытия программы всеми пользователями.
Имеет смысл после этого остановить службу сервера Firebird. Это гарантирует целостность базы данных.

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

После деинсталляции сервера предыдущей версии установите сервер версии 2.5.

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

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

Клиентские библиотеки будут скопированы в системную папку Windows. Для использования в локальном варианте, когда программа запускается на самом сервере с консоли или в сеансе сервера терминалов, этого достаточно.

Если же программа запускается по локальной сети на компьютере клиента из "расшаренной" папки на сервере, следует 32-разрядную клиентскую библиотеку вновь установленного сервера скопировать в папку с исполняемым файлом программы. То же самое придется сделать на каждом компьютере клиентов, если программа запускается не с сервера, а из локальных папок на компьютерах клиентов.

Сервер баз данных устанавливается по умолчанию в папку "Program files" системного диска, если иное не указано при установке. Обычно это путь:
"C:\Program Files\Firebird\Firebird_2_5\"
Аналогично для 64-разрядных систем и 64-разрядного сервера, но это может быть и
"C:\Program Files (x86)\Firebird\Firebird_2_5\"
в том случае, если установлена 32-разрядная версия сервера.

Клиентскую 32-разрядную (программа 32-разрядная, а разрядность программы и клиентской библиотеки должна совпадать) библиотеку можно найти в папке \bin\ установленного 32-разрядного сервера и в папке \WOW64\ для 64-разрядного варианта сервера баз данных.

По завершении установки сервера версии 2.5 можно проверить правильность установки. Убедитесь в том, что служба сервера баз данных запущена и запустите программу. Серверы Firebird версии 1.5 и 2.5 совместимы снизу вверх, то есть, сервер баз данных большей версии должен работать с базами данных, созданными серверами меньших версий.

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

Конвертирование базы данных

После переустановки и проверки сервера можно перейти к конвертированию версии базы данных. Хотя версии серверов и совместимы, в случае "старой структуры базы данных" с ней не будут работать расширения, появившиеся в новой версии сервера. Для обеспечения совместимости потребуется конвертировать (преобразовать версию) базу данных.

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

  • закрыть программу у всех пользователей
  • остановить службу сервера Firebird (МПВ)
  • сделать резервную копию БД
  • выполнить операцию перехода с версии 1.5 на версию 2.5 одним из вариантов , описаных ниже
    (если один из вариантов завершился с ошибкой, то можно попробовать следующий)
  • в случае неудачного перехода, восстановить сохраненную базу данных из резервной копии, отправить информацию автору
  • запустить службу сервера (МПВ)
  • продолжить работу

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

Вариант 1. Сжатие базы данных

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

Эта операция полезна сама по себе, когда начинают наблюдаться "тормоза" в выполнении запросов и увеличивается время на формирование отчетов.

  • запустить службу сервера (МПВ, в однопользовательском варианте сервер не устновлен, ничего запускать и останавливать не надо)
  • запустить программу с правами администратора
  • выполнить операцию сжатия базы данных:
    - откройте конфигуратор (Меню - Файл - Конфигурация), вкладку "Обработки"
    - выполните обработку "Сжатие базы данных"

После сжатия будет выполнено завершение работы программы.

Вариант 2. Конвертирование с использванием FDBConvert

Скачайте с сайта архив FDBConvertPortable.zip и распакуйте во временную папку программу конвертирования БД в версию 2.5.

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

Прим . Выражаю благодарность разработчикам платформы Гедымин за предоставленную программу.

Вариант 3. Командный файл конвертирования БД

Этот вариант для продвинутых пользователей и любителей командной строки, желающих "всё держать под контролем". Хотя этим вариантом может воспользоваться любой пользователь, способный в командной строке указать путь к базе данных.

Скачайте с сайта архив Convert_15_to_25.zip и распакуйте во временную папку содержимое архива. Запустите командный файл, передав ему в качестве параметра путь к базе данных.

convert_15_to_25.bat [диск:][путь\]SHOP.FDB

Дождитесь окончания операции.

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

Проверка результатов конвертирования базы

Запустите программу и убедитесь в успешности преобразований. Должно пропасть предупреждение о разных версиях сервера и базы данных. Также на вкладке "Значения" конфигуратора будут указаны одинаковые версии сервера и базы данных.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows