Как установить firebird на ubuntu
Обновлено: 06.07.2024
В этой статье мы опишем минимальный набор действий, необходимых для оптимальной установки СУБД Firebird версии 3.0 на новые дистрибутивы Linux. Для примеров выбраны CentOS 8 и Ubuntu 19.
Для самых нетерпеливых — сразу в бой:
Быстрая установка
Редактируем файл /etc/sysctl.conf , добавляя строку:
Сохраняем файл и применяем настройку:
Дальнейшие инструкции различаются для CentOS 8 и Ubuntu 19, но ССЫЛКА и КАТАЛОГ обозначают ссылку с официального сайта проекта Firebird для загрузки дистрибутива и каталог, в который будет распакован дистрибутив в процессе загрузки.
На текущий момент (март 2020) актуален релиз Firebird 3.0.5 (вот ссылка на 64-битную версию).
Собственно установка СУБД Firebird:
Если вы хотите лучше понимать, что чего служат эти действия – читайте дальше.
Основная часть
Небольшая преамбула
Предполагается, что уже ОС установлена в минимальном варианте и настроен доступ к публичным репозиториям или к их локальным копиям.
Предполагается, что у читателя есть базовые знания о Linux и, СУБД Firebird.
Планирование
На сервере СУБД рекомендуется выделять отдельные разделы для временных файлов ( /tmp ), файлов баз данных и локальных бэкапов.
К временным относятся lock-файлы, файлы сортировок, файлы «материализации» глобальных временных таблиц (GTT) и таблиц мониторинга. Файлы сортировок и глобальных временных таблиц расположены в /tmp , файлы mon$-таблиц и lock-файлы – в /tmp/firebird .
Файлы сортировок «удаляются» ( unlink ) сразу после создания, поэтому их нельзя «увидеть» в листинге каталога – только в списке описателей (handles) процесса (помечены как deleted ):
В листинге псевдокаталога /proc/…/fd/ отображаются симлинки, а фактическую информацию о файле даёт:
где НОМЕР – описатель (дескриптор) интересующего файла.
Вместо вызова « pgrep исполняемый-файл » можно сразу подставить идентификатор интересующего процесса.
Временные файлы могут быть очень большими, поэтому для /tmp рекомендуется выделять не менее 20-30 ГБ. Следует учитывать, что размер файлов сортировок зависит только от объёма данных, явно или неявно сортируемых в запросе и один-единственный пользователь может «создать» гигабайты временных файлов.
Раздел для файлов баз данных должен вмещать файлы всех баз. плюс, как минимум, копию файла самой большой базы. Следует учитывать рост файлов баз в перспективе на несколько лет вперёд.
Раздел локальных бэкапов должен вмещать, как минимум, по одному архиву бэкапов всех баз плюс бэкап самой большой базы. Желательно, чтобы на этом разделе было и место для восстановления самой большой базы. Следует учитывать рост бэкапов и архивов бэкапов в перспективе на несколько лет вперёд.
Предварительная подготовка
Сервер СУБД Firebird 3.0 динамически выделяет и освобождает системную память, что может приводить к её фрагментации. Например, после единовременного отключения от суперсервера большого числа пользователей, могут возникают ошибки при новых подключениях.
Фрагментацию памяти контролирует системный параметр vm.max_map_count , по умолчанию – 64K. Рекомендуется увеличить его значение вчетверо:
Чтобы новое значение устанавливалось при перезагрузке системы, добавляем в файл /etc/sysctl.conf строчку:
Желательно сделать комментарий, чтобы была понятна причина изменения этого параметра. Можно сначала отредактировать файл, а затем применить сохранённые в нём установки:
Установка необходимых пакетов
Исполняемые файлы СУБД Firebird 3.0 Linux зависят от библиотек ncurses ( libncurses.so.5 ), ICU (без привязки к версии и без отображения в выводе ldd ) и tommath ( libtommath.so.0 ). Для загрузки и распаковки архива сборки потребуются утилиты gzip , tar и curl или wget . Версии ICU, gzip , tar и curl / wget – несущественны.
Работа с пакетами зависит от системы и от используемого в системе пакетного менеджера, поэтому рассмотрим их поочерёдно.
CentOS 8 использует новый пакетный менеджер – dnf и он же «прозрачно» вызывается по команде yum . Поскольку для наших целей между ними нет разницы – в примерах будет yum .
Обновляем кэш метаданных: sudo yum makecache
Пакет libtomath находится в отдельном E(xtra)P(ackages for)E(nterprise)L(inux) репозитории, поэтому проверяем, что он уже подключен:
Опция «только из кэша» ( -C или --cache-only ) используется, чтобы исключить ненужные проверки и загрузки, ускорив работу yum. Если в списке нет epel-репозитория – устанавливаем его и обновляем кэш метаданных:
Подтверждаем запросы, при необходимости сверяя значения pgp-ключей с уже известными из доверенного источника.
Проверяем статус нужных пакетов (команда сложена, в примере вывода отфильтрован 32-разрядный пакет):
Видим, что curl , gzip и ncurses размещены в псевдорепозитории установщика ( anaconda ), а tar – исключён из минимальной установки системы. Мажорные версии libncurses и libtommath больше, чем требуется: 6 и 1 вместо 5 и 0, соответственно. Если один и тот же пакет и установлен и доступен – для него выпущено обновление. Устанавливаем недостающие пакеты:
Для управления пакетами предназначены утилиты apt , apt‑get и apt‑cache . Первая рассчитана на интерактивную работу, а две последние – на использование в скриптах. Имена пакетов немного другие и включают версию.
Проверяем статус нужных пакетов (команда сложена, пример вывода сокращён и отфильтрованы 32-разрядные пакеты):
Пакеты, для которых в квадратных скобках указано installed / upgradable – установлены. Доступен, но не установлен ncurses5 , вместо curl установлен wget . Устанавливаем недостающие пакеты:
Поскольку libtommath.so.1 и libncurses.so.6 обратно совместимы с libtommath.so.0 и libncurses.so.5 , то для Firebird достаточно создать симлинки на имеющиеся версии библиотек.
Находим libtommath.so.1 ( libncurses.so.? расположены в этом же каталоге ):
Проверяем результат (команда сложена, примеры вывода сокращены):
Загрузка дистрибутива СУБД Firebird.
Официальные выпуски для линукса доступны в виде архивов (tar.gz) и пакетов deb/rpm, а сборки – только в виде архивов. Мы будем рассматривать «общий установщик» (generic installer из tar.gz).
Архив сборки требуется загрузить и распаковать, но мы совместим оба этих процесса. Распаковка делается в /tmp , URL обозначает ссылку на загружаемый архив.
По умолчанию curl посылает загружаемые данные на стандартный вывод, но не обрабатывает перенаправления и мы добавляем « ‑L », а wget , наоборот: обрабатывает перенаправления, но записывает данные в файл и мы ставим « ‑O‑ ». Для tar указываем использование gzip -фильтра и каталог, в который будет выполнена распаковка. По завершении процесса появится каталог вида Firebird‑3.0.5.33220‑0.amd64 с тремя файлами: install.sh , buildroot.tar.gz и manifest.txt .
Установка Firebird
В ходе предварительной подготовки мы отрегулировали значение системного параметра vm.max_map_count , проверили наличие и установили библиотеки ICU, ncurses и tommath. Убедились в правильности версий ncurses и tommath ( libncures.so.5 и libtommath.so.0 ) и создали необходимые симлинки.
Собственно установка делается очень просто. Переходим в каталог, куда был распакован архив дистрибутива Firebird, проверяем и, при необходимости, устанавливаем флаг «исполняемый» скрипту install.sh :
запускаем инсталяционный скрипт:
нажатием клавиши Enter подтверждаем начало установки, а по получении запроса – вводим пароль sysdba.
Скрипт установки автоматически запускает systemd -юнит firebird-superserver (умалчиваемая архитектура Firebird 3.0). Сервис Firebird будет работать с параметрами по умолчанию для суперсервера: страничный кэш в 2048 страниц (на базу), буфер сортировок в 64 МБ (общий) и подключение только клиентов третьей версии. Просмотр параметров firebird.conf :
Следует учитывать, что новые значения из firebird.conf будут активированы только после перезапуска сервиса Firebird.
При подборе значений параметров следует учитывать, что есть три основных «потребителя»: страничный кэш (для базы), буфер сортировок (общий) и память, выделенная сервером для клиентских подключений. Управлять можно только первыми двумя – объём памяти клиентских подключений зависит от количества и текста кэшированных запросов, их планов и задействованных в запросах объектов базы. Оценка памяти клиентских подключений делается только эмпирически и может меняться при изменении клиентских приложений и/или объектов базы.
Для суперсервера на хостах с малым объёмом памяти (до 12-16 ГБ) не следует выделять для страничного кэша и буфера сортировки более трети-четверти от общего объёма ОЗУ.
Если количество баз не фиксировано и может меняться – общий объём памяти страничного кэша следует делить на максимальное количество баз, которые могут быть на сервере. Размер страничного кэша задаётся в страницах и его надо отдельно пересчитывать в байты.
Для переключения на архитектуру классика требуется, как минимум, явно указать ServerMode в firebird.conf , уменьшить там же страничный кэш (не более 2K), уменьшить буфер сортировок (суммарный допустимый объём всех сортировок, поделённый на максимальное количество подключений), запретить и остановить юнит firebird-superserver , разрешить и запустить юнит firebird-classic.socket .
Использование архитектуры суперклассик в Firebird 3.0 не имеет особого смысла: «надёжность» – как у суперсервера и такой же общий буфер сортировок. Нет общего страничного кэша и «потери» на синхронизацию разных подключений между собой такие же, как у классика.
В официальных репозиториях Ubuntu можно найти пакеты Firebird не самой первой свежести. Например для моего текущего LTS-релиза 10.04.4 Lucid Lynx (да-да, я ретроград, надух не переваривающий Unity и Gnome3) это будет Firebird 2.5.0.26074. В то время как последний официальный релиз — 2.5.2.26540 Security Update 1. Если нужен последний релиз, нужно либо собирать птицу из исходников, либо подключить сторонний репозиторий. Далее рассматривается второй вариант.
Добавляем ppa:
Обновляем список пакетов
Далее производим установку сервера. В процессе у вас запросят пароль супер-пользователя (SYSDBA):
Это архитектура супер-сервер. Если вы предпочитаете использовать альтернативные конфигурации классик или супер-классик, то команды на установку пакетов будут такие:
либо
Если вы не знаете, какая из трех архитектур нужна вам, ознакомьтесь с документацией (если на русском, то из Quick Start Guide старой версии 1.5), либо сразу начните с архитектуры супер-сервер.
Запустим конфигуратор установленной версии (подправьте имя пакета, если вы остановились на классик или супер-классик архитектуре):
Устанавливаем dev-пакет и примеры:
Эталонная (тестовая) база employee.fdb установится в виде архива в /usr/share/doc/firebird2.5-examples/examples/empbuild/
Распакуем и положим куда-нибудь поближе:
Подключимся к тестовой БД через консольную утилиту isql:
SQL> connect "localhost:/var/lib/firebird/2.5/data/employee.fdb" user 'SYSDBA' password 'SYSDBApassword';
Замените пароль на свой.
Не забываем оканчивать команды точкой с запятой.
Всегда добавляйте «localhost:» перед файловым путем к БД. В этом случае lock-файлы и сегменты разделяемой памяти будут во владении учетной записи 'firebird'. Другой вариант — добавить себя к группе 'firebird'
Вы можете запросить имеющиеся в базе таблицы:
SQL> show tables;
COUNTRY CUSTOMER
DEPARTMENT EMPLOYEE
EMPLOYEE_PROJECT JOB
PROJECT PROJ_DEPT_BUDGET
SALARY_HISTORY SALES
либо версию сервера:
SQL> show version;
ISQL Version: LI-V2.5.2.26508 Firebird 2.5
Server version:
Firebird/linux AMD64 (access method), version "LI-V2.5.2.26508 Firebird 2.5"
Firebird/linux AMD64 (remote server), version "LI-V2.5.2.26508 Firebird 2.5/tcp (arni-ubuntu)/P12"
Firebird/linux AMD64 (remote interface), version "LI-V2.5.0.26074 Firebird 2.5/tcp (arni-ubuntu)/P12"
on disk structure version 11.2
Создадим новую БД:
SQL> create database "/var/lib/firebird/2.5/data/first_database.fdb" user 'SYSDBA' password 'SYSDBApassword' default character set UTF8;
Commit current transaction (y/n)?y
Committing.
Удостоверимся, что мы подключены действительно к новой (пустой) БД:
SQL> show tables;
There are no tables in this database
Создадим таблицу и наполним её парой строк:
SQL> create table TEST(ID int not null primary key, NAME varchar(20));
SQL> show tables;
TEST
SQL> insert into TEST values (1, 'Firebird');
SQL> insert into TEST values (2, 'Hallo,Habr');
SQL> select * from TEST;
ID NAME
Не забываем коммитить свою работу:
SQL> commit;
Hе секрет, что rollback надо делать пореже,
Лучше делать почаще commit!
Я программой своей скоро сервер повешу — У админа пускай голова поболит.
Под крики о кастрации,
В обкуренной прострации,
Как следствие мутации
Рождается в момент
Rollback segment для маленькой,
Для маленькой такой транзакции,
Для скромной такой транзакции
Огромный такой сегмент!
Hе секрет, что rollback — это язва и грыжа,
Геморрой и чуть-чуть гайморит.
Если ты программист, а не ослик бесстыжий — Лучше делай почаще commit!
Hе секрет, что друзьям тоже надо ресурсы,
Hадо память, процессор и диск…
Так что делай commit, а иначе… ты в курсе,
Что rollback — для тебя неоправданный риск.
Чтобы выйти из консольного инструмента:
SQL> quit;
либо более традиционно: ^D
Под конец установим GUI-инструмент для администрирования баз данных Firebird: FlameRobin
После установки ищите его в меню: Приложения => Программирование => FlameRobin.
Регистрируем нашу БД:
И используем:
Инструмент нельзя назвать продвинутым. Из windows (а также, говорят, из wine) можно подключаться и администрировать БД с помощью IBExpert. Это уже мощнейшая IDE, которая даст фору многим проприетарным продуктам для таких коммерческих СУБД как MsSQL или Oracle. Но самое главное — для exUSSR она бесплатна:
IB Expert — The Most Expert for InterBase, Firebird and Yaffil
Copyright © 2000-2012 IBExpert KG
All rights reserved.
Раз Вы читаете этот текст, значит на Вашем компьютере установлена
кодовая страница WIN1251. А это в свою очередь означает, что Вы вправе
использовать этот продукт совершенно бесплатно.
В любом случае, Вы всегда можете помочь нам своими советами
по улучшению продукта, баг-репортами и новыми идеями.
С правами администратора на целевой машине, введите следующую команду:
Система отслеживания зависимостей Apt будет автоматически предлагать все пакеты, необходимые для полной установки со следующим выводом:
Нажмите клавишу “Ввод” и необходимые пакеты будут загружены и установлены на целевую систему. Также будет создан новый пользователь “firebird” для запуска сервера, но сервер пока не будет запускаться автоматически:
Если вы хотите чтобы сервер Firebird запускался автоматически при старте системы, запустите настройку dpkg-reconfigure на данном пакете и нажмите “Да” при соответствующем вопросе. Затем вам будет предложено ввести пароль SYSDBA:
После кажатия кнопки “Ок” сервер FireBird будет запущен.
Вы опытный пользователь Unix, но новичек в Ubuntu, тогда вы удивитесь, как удобно расположились все файлы Firebird в иерархии каталогов. Чтобы увидеть, где все файлы были установлены при помощи Apt, выполните следующую команду:
Сейчас вы можете переключится на пользователя “firebird”, используя команду su, если потребуется.
Установка примеров и файлов для разработчика:
Запустите интерактивную оболочку isql-fb и в SQL> строке запроса введите команду подключения к созданной базе данных employee:
Теперь из SQL> строки запроса, вы можете просматривать базу данных employee. Например, вы можете получить список таблиц и проверить версию сервера:
Если вы хотите использовать GUI (графический) инструмент администрирования, вы можете попробовать FlameRobin, который включен в репозиторий Ubuntu. Он может быть установлен очень просто:
Если вы дошли до этого пункта и сделали все правильно, ваш Firebird сервер успешно установлен на Ubuntu. Успехов вам!
Данный перевод был составлен при помощи Google Documents и веб-браузера FireFox
Для тестирования установки сервера использовалась виртуальная машина Ubuntu 11.04 на VirtualBox.
Установите FireBird на Ubuntu 20.04 LTS Focal Fossa
Шаг 1. Во-первых, убедитесь, что все ваши системные пакеты обновлены, выполнив следующие apt команды в терминале.
Шаг 2. Установка FireBird на Ubuntu 20.04.
По умолчанию FireBird доступен в репозитории Ubuntu по умолчанию. Выполните следующую команду, чтобы установить его:
Во время установки вам будет предложено установить пароль базы данных Firebird, как показано ниже:
После установки Firebird в вашей системе выполните следующую команду, чтобы обновить базу данных безопасности:
Шаг 3. Настройте базу данных FireBird.
Firebird может хранить и получать доступ к вашим базам данных из любого места в стиле SQLite, но также может ограничивать их местоположение. Выполните следующую команду для редактирования : firebird . conf
Добавьте следующие файлы:
Сохраните изменения и закройте файл. Затем, чтобы применить изменения, просто перезапустите службу:
Шаг 4. Создание баз данных FireBird.
Сначала войдите в базу данных Firebird, используя следующую команду:
Приступаем к созданию новой базы данных со следующим синтаксисом:
Затем создайте базу данных « testdb » с пользователем « » и паролем « »: computerfreaks - user Your - Strong - Password
После этого подключение к созданной базе данных:
Поздравляю! Вы успешно установили FireBird. Благодарим за использование этого руководства по установке базы данных FireBird в системе Ubuntu 20.04 LTS Focal Fossa. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт FireBird .
Читайте также: