PostgreSQL#

PostgreSQL — это объектно-реляционная система управления базами данных (СУБД) с открытым исходным кодом, предназначенная для надежного хранения и обработки структурированных данных. Инструмент предназначен для развертывания локальных и распределенных баз данных (БД), поддерживает стандарты SQL, транзакции ACID и расширяемую архитектуру.

PostgreSQL использует модель «клиент-сервер». В ОС Platform V SberLinux OS Server поставляется в виде нескольких пакетов.

Основные:

  • postgresql17 – основной метапакет, содержащий клиентскую часть и клиентские утилиты;

  • postgresql17-server - пакет, содержащий серверную часть;

  • postgresql17-contrib – пакет, содержащий модули расширений (contrib-модули).

Важно

Не используйте PostgreSQL для обработки и хранения информации ограниченного доступа. Использование допустимо только для работы с информацией, не подлежащей защите согласно требованиям ФСТЭК России.

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

PostgreSQL предлагает множество современных функций:

  • сложные запросы;

  • внешние ключи;

  • триггеры;

  • обновляемые представления;

  • целостность транзакций;

  • управление многоверсионным параллелизмом.

Также PostgreSQL может быть расширен, например, через добавление новых:

  • типов данных;

  • функций;

  • операторов;

  • агрегатных функций;

  • индексных методов;

  • процедурных языков.

Дополнительно PostgreSQL поддерживает:

  • физическую и логическую репликацию, включая потоковую;

  • многоуровневую систему индексов: B-tree, Hash, GiST, SP-GiST, GIN, BRIN;

  • встроенную систему ролей и грантов для управления доступом;

  • «горячее» резервное копирование (online backup) и восстановление на точку во времени (Point-in-Time Recovery, PITR);

  • расширения через contrib-модули (например, pg_stat_statements, uuid-ossp, hstore).

Установка#

Для установки PostgreSQL через dnf выполните:

dnf install postgresql17 postgresql17-server

Данная команда установит базовый набор пакетов для клиентской и серверной частей PostgreSQL.

Примечание

Другие пакеты PostgreSQL также устанавливаются командой dnf install <package_name>. Полный перечень пакетов можно узнать с помощью команды dnf search postgresql17.

Конфигурация#

Основной каталог данных PostgreSQL по умолчанию – /var/lib/pgsql/data/.

Основные конфигурационные файлы PostgreSQL:

  • /var/lib/pgsql/data/postgresql.conf — основной файл конфигурации сервера. Содержит параметры памяти, журналирования, сетевых настроек, локали и других аспектов работы СУБД.

  • /var/lib/pgsql/data/pg_hba.conf— файл управления методами аутентификации клиентов. Определяет правила доступа по базе данных, пользователю, хосту и методу аутентификации (например, scram-sha-256, trust, peer).

  • /var/lib/pgsql/data/pg_ident.conf — файл сопоставления имен пользователей ОС и ролей PostgreSQL при использовании аутентификации ident.

Примечание

Метод аутентификации ident в PostgreSQL — это способ проверки подлинности пользователя (клиента, подключающегося через локальный сокет или TCP-соединение), при котором PostgreSQL использует системного пользователя (пользователя ОС), от имени которого запущен клиентский процесс, чтобы определить, какую роль PostgreSQL ему разрешено использовать.

Каталог данных и конфигурационные файлы создаются вручную после установки необходимых пакетов с помощью утилиты инициализации postgresql-setup.

Инициализация каталога данных выполняется командой:

postgresql-setup --initdb

Запуск#

Шаги запуска и включения сервера PostgreSQL:

  1. Инициализируйте каталог данных:

    postgresql-setup --initdb
    
  2. Запустите службу:

    systemctl start postgresql
    
  3. Проверьте статус сервера:

    systemctl status postgresql
    

Для подключения от имени системного пользователя postgres введите команду:

sudo -u postgres psql

Примечание

Пользователь postgres создается автоматически при установке PostgreSQL.