- Аннотация
- Что такое СУБД PostgreSQL
- Общая информация
- Оригинальная документация СУБД PostgreSQL
- Установка пакетов
- Первичная настройка СУБД PostgreSQL
- Установка и настройка СУБД PostgreSQL
- ОС Ubuntu Server 18.04/16.04 LTS и Astra Linux Common Edition/Special Edition
- Установка
- Настройка учётной записи
- Настройка удалённого доступа
Аннотация
В данной статье представлена инструкция по установке и первичной настройке СУБД PostgreSQL на Astra Linux Special Edition x.7. Установка незащищенной версии выполняет с подключенным компонентом astra-ce расширенного (extended) репозитория, установка защищенной версии выполняется без подключения этого компонента. На момент написания данной статьи в составе Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) доступны следующие версии СУБД PostgreSQL:
- версия 11.10-astra.se5 — защищенная версия в основном репозитории (на установочном диске);
- версия 11.10-astra.se13 — защищенная версия в основном репозитории (оперативное обновление №1);
- версия 11.12-astra.ce5 — незащищенная версия в компоненте astra-ce расширенного репозитория до оперативного обновления 1.7.2;
- версия 14+240astra4 — — незащищенная версия в компоненте astra-ce расширенного репозитория начиная с оперативного обновления 1.7.2.
Программное обеспечение расширенного репозитория является сторонним по отношению к Astra Linux, не дорабатывается с точки зрения выполнения требований по безопасности информации и не проверяется при сертификации.
Подробнее см. Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition.
При использовании программного обеспечения расширенного репозитория рекомендуется для дополнительной изоляции процессов осуществлять их запуск в изолированной программной среде (контейнере) [п. 7.2 РукКСЗ1]. При использовании для этих целей Docker-контейнеров их запуск целесообразно осуществлять от имени непривилегированного пользователя в rootless-режиме, а при включенном мандатном контроле целостности (МКЦ) с применением технологии запуска контейнеров на пониженном [п. 7.2.1] или выделенном [п. 7.2.7] уровне МКЦ.
При установке СУБД PostgreSQL из компонента astra-ce расширенного репозитория защищенная версия СУБД, доработанная для взаимодействия с КСЗ Astra Linux Special Edition будет заменена на стандартную версию СУБД..
Подробнее про структуру и использование репозиториев см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования .
При установке незащищенной СУБД PostgreSQL версии 14 из компонента astra-ce расширенного репозитория 1.7.2 при наличии ранее установленной СУБД PostgreSQL версии 11 необходимо перед запуском нового кластера вручную удалить ранее установленные кластеры версии 11:
Что такое СУБД PostgreSQL
Общая информация
PostgreSQL (произносится «Пост-Грэс-Кью-Эл») — свободная объектно-реляционная система управления базами данных (СУБД). PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL:2011.
- Высокопроизводительные и надёжные механизмы транзакций и репликации;
- Расширяемая система встроенных языков программирования: в стандартной поставке поддерживаются PL/pgSQL, PL/Perl, PL/Python и PL/Tcl; дополнительно можно использовать PL/Java, PL/PHP, PL/Py, PL/R, PL/Ruby, PL/Scheme, PL/sh и PL/V8, а также имеется поддержка загрузки модулей расширения на языке C;
- Наследование;
- Возможность индексирования геометрических (в частности, географических) объектов и наличие базирующегося на ней расширения PostGIS;
- Встроенная поддержка слабоструктурированных данных в формате JSON с возможностью их индексации;
- Расширяемость (возможность создавать новые типы данных, типы индексов, языки программирования, модули расширения, подключать любые внешние источники данных).
- Триггеры — Триггеры определяются как функции, инициируемые DML-операциями. Например, операция INSERT может запускать триггер, проверяющий добавленную запись на соответствия определённым условиям. При написании функций для триггеров могут использоваться различные языки программирования (см. выше);
- правила и представления — Механизм правил (англ. rules) представляет собой механизм создания пользовательских обработчиков не только DML-операций, но и операции выборки. Основное отличие от механизма триггеров заключается в том, что правила срабатывают на этапе разбора запроса, до выбора оптимального плана выполнения и самого процесса выполнения. Правила позволяют переопределять поведение системы при выполнении SQL-операции к таблице. Хорошим примером является реализация механизма представлений (англ. views): при создании представления создается правило, которое определяет, что вместо выполнения операции выборки к представлению система должна выполнять операцию выборки к базовой таблице/таблицам с учётом условий выборки, лежащих в основе определения представления. Для создания представлений, поддерживающих операции обновления, правила для операций вставки, изменения и удаления строк должны быть определены пользователем;
- Индексы — В PostgreSQL имеется поддержка индексов следующих типов: B-дерево, хеш, GiST, GIN, BRIN, Bloom. При необходимости можно создавать новые типы индексов. Индексы в PostgreSQL обладают следующими свойствами:
- возможен просмотр индекса не только в прямом, но и в обратном порядке — создание отдельного индекса для работы конструкции ORDER BY . DESC не нужно;
- возможно создание индекса над несколькими столбцами таблицы, в том числе над столбцами различных типов данных;
- индексы могут быть функциональными, то есть строиться не на базе набора значений некоего столбца/столбцов, а на базе набора значений функции от набора значений;
- индексы могут быть частичными, то есть строиться только по части таблицы (по некоторой её проекции); в некоторых случаях это помогает создавать намного более компактные индексы или достигать улучшения производительности за счёт использования разных типов индексов для разных (например, с точки зрения частоты обновления) частей таблицы;
- планировщик запросов может использовать несколько индексов одновременно для выполнения сложных запросов.
- Численные типы:
- Целые;
- С фиксированной точкой;
- С плавающей точкой;
- Денежный тип (отличается специальным форматом вывода, а в остальном аналогичен числам с фиксированной точкой с двумя знаками после запятой);
- Символьные типы произвольной длины;
- IP и IPv6-адреса;
- CIDR-формат;
- MAC-адрес;
- UUID-идентификатор
- XML-данные
- Преобразования типов;
- Типы данных;
- Домены (пользовательские типы с изначально наложенными ограничениями);
- Функции (включая агрегатные);
- Индексы;
- Операторы (включая переопределение уже существующих);
- Процедурные языки;
- Наследование и партицирование: Таблицы могут наследовать характеристики и наборы полей от других таблиц (родительских). При этом данные, добавленные в порождённую таблицу, автоматически будут участвовать (если это не указано отдельно) в запросах к родительской таблице. Партицирование предназначено для разделения одной таблицы на несколько, так называемые партиции. Партицирование схоже с наследованием, но имеет более дружелюбный к пользователю синтаксис и более строгие ограничения, что позволяет выполнять дополнительные оптимизации при планировании запросов;
Оригинальная документация СУБД PostgreSQL
Документация на СУБД в защищенном исполнении PostgreSQL, входящую в состав Astra Linux Special Edition доступна на странице Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7). Эксплуатационная и дополнительная документация.
Оригинальная документация PostgreSQL доступна по ссылке: https://www.postgresql.org/docs/
Установка пакетов
- Подключить репозитории:
- основной репозиторий и актуальное оперативное обновление основного репозитория;
- только для установки незащищенной версии PostgreSQL — актуальное оперативное обновление расширенного репозитория, включая компонент astra-ce. Для установки защищенной версии подключение компонента astra-ce расширенного репозитория недопустимо.
systemctl status postgresql
● postgresql.service — PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri 2021-09-10 12:48:20 MSK; 1min 26s ago
Main PID: 4338 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4637)
Memory: 0B
CGroup: /system.slice/postgresql.serviceПервичная настройка СУБД PostgreSQL
- Вместо текста указать устанавливаемый пароль;
- Пароль заключается в одинарные кавычки;
- Вся команда заключается в двойные кавычки.
Установка и настройка СУБД PostgreSQL
Для работы Платформы НЕЙРОСС необходимо наличие в сети СУБД PostgreSQL версии не ниже 9.5. СУБД может быть развёрнута как на сервере Платформы, так и на выделенном сервере. В данном руководстве приведены инструкции по установке и настройке СУБД PostgreSQL под ОС Ubuntu 18.04/16.04 LTS 64 bit и ОС Astra Linux Commod Edition/Special Edition . Порядок настройки СУБД PostgreSQL для работы под управлением перечисленных операционных систем идентичен за исключением используемой версии СУБД.
ОС Ubuntu Server 18.04/16.04 LTS и Astra Linux Common Edition/Special Edition
Установка
Для установки СУБД PostgreSQL из сети Интернет выполните в терминале:
– в среде ОС Ubuntu Server 18.04 LTS
sudo apt update sudo apt install -y postgresql-10
– в среде ОС Ubuntu Server 16.04 LTS
sudo apt update sudo apt install -y postgresql-9.5
– в среде ОС Astra Linux Common Edition
sudo apt update sudo apt install -y postgresql-9.6
– в среде ОС Astra Linux Special Edition
sudo apt update sudo apt install -y postgresql-9.6
Настройка учётной записи
Процедура установки и первичной настройки Платформы НЕЙРОСС допускает как подключение к уже существующим базам данных, так и автоматическое создание таких баз данных (рекомендуемый подход). В последнем случае необходимо разрешить доступ к СУБД для учётной записи с правами на создание ролей и баз данных. В СУБД PostgreSQL всегда присутствует корневая учётная запись postgres , наделённая полными административными правами. В ОС Ubuntu Server 18.04 LTS и Astra Linux Common Edition/Special Edition для данной учётной записи по умолчанию не задан пароль, подключение к СУБД возможно только из терминала соответствующей операционной системы. Ниже приведена инструкция по заданию пароля для административной учётной записи postgres .
Если СУБД установлена на сервере Платформы, вы можете пропустить данный шаг. На этапе первого запуска Платформы оставьте поле ввода пароля пользователя СУБД пустым.
- Выполните команду psql от имени пользователя postgres с помощью sudo :
Настройка удалённого доступа
Шаги, описанные в данном разделе, необходимо выполнить ТОЛЬКО тогда, когда СУБД PostgreSQL и Платформа НЕЙРОСС развёрнуты на различных серверах. В случае, если СУБД и Платформа установлены на одном сервере — пропустите инструкцию в данном разделе.
В данном разделе описана процедура разрешения удалённого сетевого подключения к СУБД PostgreSQL версии 10.12. Местоположение конфигурационных файлов PostgreSQL других версий может отличаться.
- В терминале откройте конфигурационный файл postgresql.conf для редактирования:
$ sudo nano /etc/postgresql/10/main/postgresql.conf
#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost'; use '*' for all
sudo nano /etc/postgresql/10/main/pg_hba.conf
# Database administrative login by Unix domain socket local all postgres peer # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 10.0.0.1/13 md5 # IPv6 local connections: host all all ::1/128 md5 # Allow replication connections from localhost, by a user with the # replication privilege. #local replication postgres peer #host replication postgres 127.0.0.1/32 md5 #host replication postgres ::1/128 md5
sudo systemctl restart postgresql.service