Привет, Хабр! Меня зовут Анастасия Коршунова, я работаю в команде тестирования компании Диасофт и отвечаю за развитие СУБД. За последние годы мы много работали с компаниями, которым по закону важно использовать отечественное ПО, в том числе для работы с базами данных. Почти всегда в таких проектах уже есть зрелая инфраструктура на MS SQL Server, PostgreSQL или Oracle Database — и именно здесь возникает основной конфликт: с одной стороны, требования регуляторов, с другой — высокая стоимость и риски полной миграции логики приложений на другую СУБД. 

Поэтому мы сделали продукт, которые нативно понимает диалекты и работает без необходимости переписывать код приложений. В статье я расскажу, как устроен подход на практике и как развернуть отечественное решение Digital Q.DataBase, чтобы начать работать с существующими базами без долгой и затратной миграции.

Это статья для тех, кто уже имеет какой-то опыт администрирования БД, умеет работать в linux-подобных ОС и ищет варианты перехода на отечественное ПО с сохранением функционала привычных баз данных.

Что такое Digital Q.DataBase

Digital Q.DataBase — это сертифицированная ФСТЭК российская СУБД, которая поддерживает почти все операции по управлению данными и миграцию с западных СУБД.

Сертификация ФСТЭК России означает, что это ПО можно использовать для создания информационных систем любого масштаба, в том числе для субъектов КИИ. Если в вашем текущем или новом проекте есть база данных из этих поддерживаемых трёх, то Digital Q.DataBase позволит работать с ними напрямую, но без использования зарубежных программ.

Основные возможности и особенности:

  • Бесшовная миграция с СУБД MS SQL Server, PostgreSQL и Oracle Database без необходимости существенной доработки приложений. Поддерживаются запросы и функционал популярных диалектов.

  • Контроль доступа пользователей и обеспечение безопасности.

  • Создание копий данных и восстановление при сбоях.

  • Встроенная поддержка поколоночной и in-memory обработки данных.

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

В итоге мы можем бесплатно реализовывать всё, что нужно, но без использования зарубежных СУБД. Конечно, там ещё есть, что улучшать (например, нативный протокол TNS на ноябрь 2025 года ещё не поддерживается), но все ключевые требования к такому софту уже реализованы.

Где взять дистрибутив (и что в него входит)

Для скачивания дистрибутива заходим на страницу продукта и на самом первом экране выбираем «Скачать бесплатно». Заполняем поля с именем и почтой — и начинается загрузка архива, который содержит в себе и СУБД, и дополнительные полезные инструменты (что они делают — описано в  readme-файле в корне архива). Сама СУБД поставляется в 2 частях: серверная и клиентская часть Digital Q.DataBase.

  1. Серверная часть содержит СУБД-сервер и интерактивные SQL-строки для работы с базами данных с помощью команд.

  2. Клиентская часть — командные SQL-строки и Мастер переноса БД.

qdb-server-client содержит в себе всё для работы с СУБД Digital Q.DataBase, а остальное — дополнительные инструменты (с файлами документации, как с ними работать)
qdb-server-client содержит в себе всё для работы с СУБД Digital Q.DataBase, а остальное — дополнительные инструменты (с файлами документации, как с ними работать)
Внутри qdb-server-client — два установочных файла (серверная и клиентская часть), каталог с примерами работы и полная документация по работе и настройке
Внутри qdb-server-client — два установочных файла (серверная и клиентская часть), каталог с примерами работы и полная документация по работе и настройке

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

Если нужно работать с СУБД удаленно или перенести уже существующую базу данных в формат Digital Q.DataBase,  необходимо поставить и клиентскую часть — она позволит и мигрировать, и работать с СУБД с другого хоста.

Можно поставить оба пакета сразу на одну машину, но есть нюанс: если машина слабая, то Мастер переноса БД может работать медленнее, чем если бы поставить его на отдельный хост и запустить миграцию на нём.

Базовые требования

Особых требований у Digital Q.DataBase к железу и архитектуре процессора нет: если на нём работает Linux-дистрибутив, то и новая СУБД установится туда без проблем.А вот на программной части нужно остановиться подробнее.

Первое, самое главное требование — UNIX-подобная ОС, на которой работает PostgreSQL (которая и была взята за основу Digital Q.DataBase). Мы ориентируемся на работу под ОС Astra Linux 1.8 и выше, так как именно этот дистрибутив стоит в большинстве госучреждений и используется в отечественных проектах.

Второе — наличие доступа к стандартному репозиторию, напрямую через сеть или локально. Часто бывает так, что безопасники отключают доступ в большой интернет по непроверенным адресам, и системе при установке просто не удается получить доступ к нужным пакетам. Если это ваш случай — загрузите и используйте локальную копию репозитория. Без доступа к нему установить Digital Q.DataBase не получится: система не сможет скачать и установить нужные для работы пакеты и процесс прервется с ошибкой.

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

Установка Digital Q.DataBase на AstraLinux 1.8

❗️ Для корректной установки СУБД рекомендуется выполнять команды с правами администратора.

Копируем 2 пакета из полученного с сайта архива *.tar.gz на свою машину, в консоли переходим в папку с ними и устанавливаем их стандартным образом. Не забудьте заменить полные имена пакетов при установке — к моменту выхода статьи версия релиза, скорее всего, будет уже другая.

Серверная часть: 

sudo apt install
./qdatabase64xid-17-17.4.25101401-astra1.8_x86_64.deb

Во время установки также запускаются скрипты, которые обновят существующие на хосте базы данных Digital Q.DataBase (если таковые уже имеются) до актуальных версий:

Клиентская часть:

sudo apt install
./qdatabaseclient64xid-17-17.4.25101401-astra1.8_x86_64.deb

На этом установка закончена — система готова к работе.

Файлы, сервисы и параметры подключения к базам данных

Сразу после установки сервер Digital Q.DataBase запускается автоматически и становится доступен на портах:

  • 5445 (PostgreSQL, протокол PGWire), 

  • 1433 (MS SQL, протокол TDS),

  • 1521 (Oracle Database, протокол PGWire).

❗️Для успешной установки Digital Q.DataBase все три порта должны быть свободны. 

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

1. Занят основной порт 5445

Установка прерывается с ошибкой, пакет формально в итоге установлен (но не до конца), и СУБД работать не сможет:

2. Занят порт 1433

Установка всё так же прерывается с ошибкой (но уже обновления модуля MS SQL), пакет формально установлен, но СУБД работает без поддержки MS SQL. 

3. Занят порт 1521

Здесь установка пройдет без ошибок, но сервисы qdbproxy и qdbparse не запустятся и  диалект Oracle Database будет недоступен. Их можно будет потом запустить вручную, когда освободим порт 1521.

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

sudo netstat -tulpn | grep -E ":(1521|1433|5445)\s 

Если порт кем-то занят — мы увидим этот процесс в списке. Его нужно остановить, удалить, или перевесить процесс на другой порт.

Расположение файлов

  1. Все исполняемые модули: /opt/qdatabase-17

  2. Базы данных: /var/lib/qdatabase-17/data

  3. Логи работы СУБД: /var/log/qdatabase-17

  4. Клиентская часть: /opt/qdb

Сервисы

После установки в фоне сразу начинают работу 5 сервисов: 

  • qdatabase-17 — основной сервис СУБД (ядро)

  • qdbs — расширяет возможности ядра в части обработки запросов (например, позволяет работать с DBMS-пакетами диалекта Oracle Database), работает отдельно от основного сервиса

  • qdbproxy — прокси-сервер для маршрутизации сетевых запросов при работе с СУБД

  • qdbparse — сервис для обработки запросов в диалекте Oracle Database, которые ядро не может выполнить без дополнительных преобразований

  • qdbdgrid — сервис встроенной in-memory-компоненты DGrid для хранения данных в оперативной памяти внутри процесса СУБД, используется как высокопроизводительный кэш или внутренний буфер для рабочих данных внутри базы

Для управления ими используем стандартные команды управления сервисами (старт, состояние, остановка), например:

sudo systemctl start qdatabase-17.service

sudo systemctl status qdatabase-17.service

sudo systemctl stop qdatabase-17.service

Базы данных

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

  • master (для MS SQL) - пользователь qdbadmin с паролем qdbadmin

  • qdb (для PostgreSQL) - пользователь qdbadmin с паролем qdbadmin 

  • qdbora (для Oracle Database) - пользователь SYSDBA с паролем SYSDBA

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

Как работать с базами данных в Digital Q.DataBase

Для работы на диалекте PostgreSQL (выход через \q):

  qsql -U qdbadmin -d qdb 

или

  qsql -U qdbadmin -d qdb -h localhost -p 5445

на диалекте MS SQL (выход через exit, выполнение команд только после команды go):

tsql -H localhost -p 1433 -U qdbadmin -P qdbadmin -D master

на диалекте Oracle Database (выход через \q):

qclient qdb://SYSDBA:SYSDBA@localhost:1521/qdbora

Пример работы с PostgreSQL:

Oracle Database — тоже без сюрпризов, пишем команды как обычно, выходим через \q:

Работа с MS SQL. Тут нужно уже писать go для выполнения команд. Если будут ошибки в командах, система сразу об этом сообщит при попытке их выполнения, если их нет — просто выполнит команды:

Если нужен только базовый функционал, можно подключиться к базам данных более популярными способами, например, с помощью DBeaver CE или SQL Server Management Studio. Мы, в свою очередь, рекомендуем работать через командную строку (или через вызовы нативных функций в коде).

Что дальше

В следующей статье расскажем, как перенести свои данные в Digital Q.DataBase из других СУБД: как работает процесс миграции (используя как GUI, так и консоль) и как проверить качество переноса данных, тоже в двух режимах.

А пока — задавайте в комментариях свои вопросы по установке и работе Digital Q.DataBase, будем рады диалогу.

Комментарии (8)


  1. pg_expecto
    16.12.2025 08:12

    Бесшовная миграция с СУБД MS SQL Server, PostgreSQL и Oracle Database без необходимости существенной доработки приложений. 

    А можно практический пример из реальной практики - кому понадобилось и кто платил за миграцию с PostgreSQL в Digital Q.DataBase ? Зачем ?

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

    Можно по этому пункту поподробнее ?


    1. diasoft Автор
      16.12.2025 08:12

      1. В первую очередь, данную функциональность выбирают клиенты, которым нужно решение из РРПО, сертифицированное ФСТЭК, или поддержка вендора - лидера рынка

      2. Данное решение реализовано для работы с временными таблицами, содержащий key-value наполнение.


  1. CatAssa
    16.12.2025 08:12

    Сертификация ФСТЭК России означает, что это ПО можно использовать для создания информационных систем любого масштаба

    Сертифицировал - и всё, масштабируется. Охренеть.


  1. avs24rus
    16.12.2025 08:12

    В чем будут отличия при работе в случае просто подключенной БД MS SQL к Digital Q.DataBase и в случае выполнение миграции этой же самой БД?


    1. diasoft Автор
      16.12.2025 08:12

      Для полноценной работы базы MS SQL Server в Digital Q.DataBase ее нужно предварительно перенести (смигрировать) в собственный формат Digital Q.DataBase.


  1. CatAssa
    16.12.2025 08:12

    Тут между версиями СУБД мигрируешь лишь после долгого изучения особенностей и тщательного тестирования, а нам предлагают "вжух, и всё!", да ещё и бесплатно. Надо брать, ага-ага.


  1. aleksandy
    16.12.2025 08:12

    Его нужно остановить, удалить, или перевесить процесс на другой порт.

    Т.е. даже чтобы попробовать эту поделку придётся что-то уже работающее сломать? Охренеть логика.

    Может правильнее было бы добавить возможность переназначить эти дефолтовые порты через параметры установки? Да, не, бред какой-то, ага.


  1. Serggggey
    16.12.2025 08:12

    добрый день. Я новичок, никак не могу разобраться, прошу помочь:

    код select*
    from film f
    WHERE special_features @> '["Behind the Scenes"]';

    выдает ошибку

    ОШИБКА: ошибочный литерал массива: "["Behind the Scenes"]"

    Подробности: За "[" должны следовать явно задаваемые размерности массива.

    Позиция: 58

    где тут ошибка и как ее исправить?