Шестого июня прошла конференция Firebird Conf 2024, организованная компанией Ред Софт. Были озвучены доклады как о планах развития Firebird и Ред база данных, так и об опыте использования и внедрения Firebird. Мы взяли интервью у организаторов и докладчиков, поговорили с ними о докладах и впечатлениях от конференции в целом.
![](http://habrastorage.org/getpro/habr/hub/360/1f3/c65/3601f3c650e92e1a313884957dc066d3.png)
Firebird/Interbase *
Система управления базами данных
Новости
Калькулятор Конфигураций для Firebird SQL и 5 других новостей про Firebird
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/778/705/9ed/7787059ed1fb3214f41d6052a85fde73.png)
В последние месяцы в мире FirebirdSQL происходит значительное оживление: помимо релиза Firebird 5 было опубликовано много инструментов, статей и материалов, что я решил подготовить небольшой дайждест для читателей Хабра, которые, вероятно, соскучились по новостям о любимой СУБД.
Во-первых, вышла новая версия Калькулятора Конфигураций для Firebird, с поддержкой Firebird 5. В калькулятор (полностью бесплатный, доступен без регистрации) вводятся характеристики сервера, ...
Вышел Firebird 5.0
11 января 2024 года, выпущен Firebird 5.0 — восьмой основной выпуск СУБД Firebird, разработка которого началась в мае 2021 года. В Firebird 5.0 команда разработчиков сосредоточила свои усилия на повышении производительности СУБД: параллельное выполнение backup, restore, sweep, создания и перестроение индексов, улучшение масштабирования в многопользовательской среде, ускорение повторной подготовки запросов (кеш компилированных запросов), улучшение оптимизатора, улучшение алгоритма сжатия записей. Кроме того, появились и новые возможности в языке SQL и PSQL.
В версии Firebird 5 также появился встроенный инструмент для профилирования SQL и PSQL, что существенно облегчит поиск узких мест и отладку сложных SQL.
Базы данных, созданные в Firebird 5.0, имеют версию ODS (On-Disk Structure) 13.1. Firebird 5.0 позволяет работать и с базами данных с ODS 13.0 (созданные в Firebird 4.0), но при этом некоторые возможности будут недоступны.
Для того чтобы переход на Firebird 5.0 был проще, в утилиту командной строки gfix
был добавлен новый переключатель -upgrade
, который позволяет обновлять минорную версию ODS без длительных операций backup и restore.
Также хочется отметить тот факт, что новый релиз Firebird доступен сразу на 11 платформах, включая ARM для Linux и Android. Скачать готовые сборки и дистрибутивы можно по адресу https://firebirdsql.org/en/firebird-5-0/.
Далее я перечислю ключевые улучшения, сделанные в Firebird 5.0, и их краткое описание. Подробное описание всех изменений можно прочитать в Firebird 5.0 Release Notes. Кроме того подробный разбор новых функций Firebird 5.0 вы можете найти в серии статей на ресурсе ibase.ru.
Как я писал сервер на NodeJS для базы Firebird 3.0
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/016/817/47e/01681747e81042c48d3b705c9ef54d27.jpg)
В этой статье я расскажу, как писал самый простой сервер для общения со старой базой данных Firebird 3.0.
Истории
Хранимые процедуры, функции и триггеры на Java
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/422/228/c32/422228c32a71f42103812df2ca0e7b12.png)
Всем привет! Сегодня мы расскажем о полезной возможности СУБД Ред База Данных - создании внешних подпрограмм, то есть процедур, функций и триггеров на языке Java. Например, язык PSQL не позволяет работать с объектами файловой системы или сети, а Java запросто решает такие задачи и существенно расширяет возможности встроенного языка.
Уменьшение размера файла в СУБД Ред База Данных / Firebird без операции backup & restore
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/6f0/474/a4e/6f0474a4ecb05199992d6a68f16d11c2.jpg)
Добрый день. Меня зовут Сергей, я работаю системным архитектором в компании "РЕД СОФТ". Как я уже писал в прошлой статье, одна из проблем при эксплуатации СУБД Ред База Данных и Firebird — это уменьшение размер файла, выполнить которое возможно исключительно через backup и restore. Это долгие операции и даже при всех возможных оптимизациях будут занимать несколько часов или даже суток.
В большинстве случаев нет необходимости в уменьшении размера БД. Свободное место будет использоваться при вставке данных, а также для хранения старых, но ещё активных версий данных (В Firebird используется механизм MVCC).
Однако в некоторых случаях это сделать полезно (или вам просто очень хочется).
Многопоточный бекап и рестор в СУБД Ред База Данных
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/1de/c59/32d/1dec5932db74874b5c60afedfad26c09.jpeg)
Добрый день. Меня зовут Сергей, я работаю системным архитектором в компании "РЕД СОФТ". При эксплуатации СУБД Ред База Данных или Firebird возникает необходимость выполнить операцию резервного копирования и восстановления. На БД размером сотни гигабайт бекап и рестор занимает часы, а на БД размером несколько терабайт занимает сутки и более. Как ускорить процесс я расскажу под катом.
Мониторинг СУБД Firebird с помощью Zabbix
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/61b/5c6/623/61b5c662342804912a18c1d97ed6b0a7.jpg)
Примерно 20 лет назад была установлена СУБД Firebird, если не ошибаюсь, версии 1.0.3, на сегодняшний день база все еще жива и нужна, размер ее перевалил за 30ГБ, что по сегодняшним меркам очень мало, но и основной рост базы пришелся на начало века.
С повсеместным внедрением средств мониторинга захотелось снимать минимальную статистику и определять работоспособность СУБД и самой БД. Для мониторинга использую Zabbix установленный на Ubuntu 20.04 LTS, а сама СУБД находится на виртуальной машине с Windows 2008 Server. Версии на которых был использован метод мониторинга описанный ниже для СУБД Firebird 2.5.9, версия Zabbix 6.0. Но думаю что и с другими версиями проблем быть не должно.
Backend веб-сервиса в базе данных. Как заложить бизнес логику и сделать микросервиc-ретранслятор для API фронтенду
Я расскажу как сделать простой сервис ретранслятор для фронтенда (пример будет на php), а так же как легко проектировать в базе аналог API и регистрировать это для ретрансляции фронтенду.
Поточное резервирование базы данных, передача по сети и восстановление с конвертацией из FB 2.5 в FB 3.0
Идея была позаимствована в статье Поточная конвертация баз Firebird 2.5 в формат ODS12 (Firebird 3.0), в которой рассматривается вопрос поточной конвертации на одной машине, с установкой двух версий Firebird, что не очень удобно, когда рассматривается вопрос переезда на другой сервер.
Производственный календарь своими руками в Firebird
На написание этой статьи меня натолкнули похожие статьи на хабре: производственный календарь с использование PostgreSQL и MS SQL. Я решил использовать смешанный подход. С одной стороны, хранить только исключения для дат, и генерировать календарь «на лету», с другой такой календарь можно сохранять в постоянную таблицу и осуществлять быстрый поиск по дате или другим атрибутам.
Для разработки будем использовать Firebird 3.0, в нём был значительно расширены возможности PSQL по сравнению с предыдущими версиями. Все процедуры и функции для работы с календарём будут инкапсулированы в пакете DATE_UTILS.
Установка Firebird 3 на современные версии Linux: CentOS8 и Ubuntu 19
Для «доставки» дистрибутива Firebird на целевую систему, в этом руководстве, выбран вариант загрузки tar.gz архива по ссылке с официального сайта проекта (firebirdsql.org).
Для самых нетерпеливых — сразу в бой:
Тюнинг Firebird и Linux для БД размером 691 Гб с 1000+ пользователей
Размер БД и количество активных пользователей в таких системах обычно достаточно большие, поэтому в этой статье я расскажу об опыте оптимизации настроек Firebird и Linux, основываясь на конкретных примерах больших БД Firebird в компаниях БудьЗдоров (Ингосстрах), АльфаЗдрав, и затрону опыт других компаний по оптимизации Firebird+Linux.
Давайте подробнее познакомимся с предметом оптимизации — СУБД Firebird 3.0.5 (с расширениями HQbird), обслуживает БД размером 691Гб (на текущий момент) с ежедневными 1000-1100 пользователями, работает на Linux CentOS 7, сервер — железный HP DL380. Для БД настроена репликация на резервный сервер (вопрос о репликации вне рамок этой статьи).
Ближайшие события
![](https://habrastorage.org/getpro/habr/upload_files/189/cd5/506/189cd5506f31c8e8ada8c353cb214ee3.png)
![](https://habrastorage.org/getpro/habr/upload_files/2f0/acf/823/2f0acf823340a2332849a79e64b7095f.jpg)
![](https://habrastorage.org/getpro/habr/upload_files/088/285/bc0/088285bc0d3f2864c23b0fbe4706d686.png)
![](https://habrastorage.org/getpro/habr/upload_files/651/a7d/cc7/651a7dcc723cde9cf1b2925e3b2c3ad9.png)
![](https://habrastorage.org/getpro/habr/upload_files/496/f45/00e/496f4500e4fb9646ba904aff7ca2c384.png)
![](https://habrastorage.org/getpro/habr/upload_files/3c9/b50/d32/3c9b50d32b0c0c5a94854a213e323760.jpg)
![](https://habrastorage.org/getpro/habr/upload_files/b86/0b5/312/b860b5312e98564aaa80f9c8f680cdda.jpg)
Написание UDR на языке Pascal
В Firebird уже достаточно давно существует возможность расширения возможностей языка PSQL с помощью написания внешних функций — UDF (User Defined Functions). UDF можно писать практически на любом компилируемом языке программирования.
В Firebird 3.0 была введена плагинная архитектура для расширения возможностей Firebird. Одним из таких плагинов является External Engine (внешние движки). Механизм UDR (User Defined Routines — определяемые пользователем подпрограммы) добавляет слой поверх интерфейса движка FirebirdExternal.
В данном руководстве мы расскажем как объявлять UDR, о их внутренних механизмах, возможностях и приведём примеры написания UDR на языке Pascal. Кроме того, будут затронуты некоторые аспекты использования нового объектно-ориентированного API.
Поточная конвертация баз Firebird 2.5 в формат ODS12 (Firebird 3.0)
Чтобы перейти на 3.0, базу данных от 2.5 необходимо преобразовывать в новый формат через backup/restore. Разумеется, мы предполагаем, что БД была предварительно подготовлена для конвертации — т.е. метаданные и запросы были проверены на совместимость с Firebird 3.0.
Если следовать стандартному подходу, это означает, что нужно произвести бэкап на версии 2.5, затем установить 3.0 и сделать рестор. Такая процедура приемлема, если есть достаточно времени, но при миграции больших баз данных, или при одновременной миграции нескольких десятков БД, когда время поджимает, можно воспользоваться поточной конвертацией, которая на 30-40% быстрее. Как именно это сделать (под Windows и под Linux), читайте под катом.
Сравнение качества кода Firebird, MySQL и PostgreSQL
![](https://habrastorage.org/getpro/habr/post_images/d99/28e/f3d/d9928ef3d7038b3b6d126b6952ad4502.png)
Сегодняшняя статья несколько необычна. Как минимум по той причине, что вместо анализа одного проекта, будем искать ошибки сразу в трёх, а также посмотрим, где найдутся наиболее интересные баги. А самое интересное — мы выясним, кто молодец и пишет самый качественный код. Итак, на повестке дня — разбор ошибок в коде проектов Firebird, MySQL и PostgreSQL.
Тестирование БД мобильного Delphi-приложения
Для лучшего понимания необходимости тестирования в данном конкретном случае, нужно отметить, что в описанном проекте изначально была задана довольно высокая планка качества, поддержание которой в части функционала, реализованного в процедурах, достиглось, в том числе, за счёт автотестов, проверяющих ключевые ХП (они ответственны за критический для приложения функционал – систему рекомендаций). Именно один из способов организации такого тестирования – на основе DUnitX и XML – и является предметом статьи.
Создание приложений с использованием Firebird, jOOQ и Spring MVC
Для упрощения разработки вы можете воспользоваться одной из распространённых IDE для Java (NetBeans, IntelliJ IDEA, Eclipse, JDeveloper или др.). Лично я использовал NetBeans. Для тестирования и отладки нам так же потребуется установить один и веб-серверов или серверов приложения (Apache Tomcat или Glass Fish) Создаём проект на основе шаблона Maven проекта веб-приложения.
Шифрование БД под управлением Firebird 3.0
![](https://habrastorage.org/web/8c1/3a2/f82/8c13a2f82275455caa470824e52381cb.png)
В апреле 2016 года вышла новая версия СУБД Firebird под номером 3. Из нововведений, среди прочего, появилось и немало механизмов защиты хранимых и передаваемых данных. Там есть и защита канала передачи данных, есть управление пользователями, а также есть шифрование самой БД, которое реализовано как прозрачное шифрование на уровне страниц данных. Реализуется это всё с помощью написания специальных расширений для Firebird. Можно конечно и самому разобраться и написать эти расширения, но почему бы не взять существующие. Тем более, что для написания, как минимум, нужно понимать в криптографии, иметь на вооружении знания какого-нибудь криптографического пакета и разобраться с новым С++ Firebird API.
Как создать свою файловую систему на основе blob полей в базе данных. Почему это удобно. Вопросы эффективности
Оглавление:
- Как сделать разный часовой пояс в разных базах данных на одном сервере.
- Как вести логи изменений данных пользователями в базе данных, сохраняя их в другой базе данных (чтобы база основная база данных не забивалась мусором и не росла)
- Как создать свою файловую систему на основе blob полей в базе данных. Почему это удобно. Вопросы эффективности хранения файлов (как получить максимальное быстродействие и при этом минимальное занимаемое место)
Данный способ – способ реализации хранения файлов, приложенных пользователем на сайте, через веб интерфейс. Это не будет “файловой системой” в том понимании как это организовано в операционной системе.
Пример, описанный в этой статье, будет решать задачу стоявшую когда-то у меня: “Выделить раздел внутри аккаунта компании на веб сайте, где сотрудники компании смогут хранить свои файлы, создавать папки (назовем его “Диск”). Диск должен быть изолированным от аккаунтов других компаний и должен интегрироваться в процессы работы аккаунта (организация хранения файлов, прикладываемых к задачам, проектам, карточкам контрагентов, отчетов и т.п.) ”.
Сразу замечу, что данный способ, с точки зрения быстродействия, менее эффективен простого сохранения файлов на веб-сервере. Но он имеет определенные преимущества, которые в моем случае перевесили недостатки потери скорости загрузки.
Вклад авторов
AlexeyKovyazin 198.0sim_84 137.4SergVasiliev 49.0ncix 48.0DenisioDelBoro 41.2Andrey2008 34.0SergeyPyankov 33.0FireMonkey 29.0RED_SOFT 23.4ToLive 22.0