Аннотация
В данной статье представлена инструкция по установке и первичной настройке СУБД 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
- Вместо текста указать устанавливаемый пароль;
- Пароль заключается в одинарные кавычки;
- Вся команда заключается в двойные кавычки.
Установка pgAdmin
1. В ОС Windows при установке PostgreSQL программа pgAdmin устанавливается с общим пакетом.
Так же её можно установить отдельно, скачав с сайта www.pgadmin.org по ссылкам pgAdmin 4 v4.30 или pgAdmin 4 v5.0
2. Для установки pgAdmin в ОС Linux Astra SE необходимо подключить установочный диск в качестве репозитория.
Перед началом установки в файле sources.list закомментируйте все строки, для этого откройте файл на редактирование командой
sudo nano /etc/apt/sources.list
Поставьте значок # в начале каждой строки и выйдите из редактора с сохранением.
Выполните команду sudo apt updateДалее для установки pgAdmin3 нужно выполнить следующие команды:
sudo mount -o loop //AstraSmolenskAmd64.iso /media/cdrom
sudo apt-cdrom -m add
sudo apt update
sudo apt install pgadmin3 -y
Если установлено обновление ОС, то apt может попросить примонтировать диск с обновлением. В этом случае необходимо сделать следующее:
sudo mkdir /media/update
sudo mount -o loop //.iso /media/update
sudo apt-cdrom -m -d=/media/update add
sudo apt update
И после этого повторить команду: sudo apt install pgadmin3 -y
После этого в главном меню «Пуск» появится раздел «Разработка», в котором будет ярлык «pgAdmin3»Для облегчения установки можно воспользоваться cкриптом для установки pgAdmin3. Перед запуском скрипта проверьте, чтобы пути и названия файлов, в нем указанные, совпадали с реальными. Выполните команду sudo /pgAdmin3_setup.sh