Аннотация
В данной статье представлена инструкция по установке и первичной настройке СУБД 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
- Вместо текста указать устанавливаемый пароль;
- Пароль заключается в одинарные кавычки;
- Вся команда заключается в двойные кавычки.
Astra Linux. Установка PostgreSQL.
Мы планируем использовать наш сервер с Astra Linux для работы с 1С, поэтому установим на него версию PostgreSQL для 1С, которую разрабатывает фирма Postgres Professional.
Полный репозиторий всех версий PostgreSQL, поддерживаемых фирмой, расположен тут — https://repo.postgrespro.ru/
Репозиторий PostgreSQL для Astra Linux «Смоленск» расположен тут — https://repo.postgrespro.ru/pg1c-11/astra-smolensk/1.6/
Итак, создадим локальную папку для репозитория и скачаем в неё все необходимые пакеты
mkdir -p /opt/distr/postgres cd /opt/distr/postgres wget -r --no-parent --no-check-certificate https://repo.postgrespro.ru/pg1c-11/astra-smolensk/1.6/
Теперь скачаем GPG-ключ (подпись) репозитория
wget --no-check-certificate https://repo.postgrespro.ru/pg1c-11/keys/GPG-KEY-POSTGRESPRO
Осталось добавить скачанный репозиторий PostgreSQL в общий список репозиториев и зарегистрировать его подпись.
echo 'deb file:///opt/distr/postgres/repo.postgrespro.ru/pg1c-11/astra-smolensk/1.6 smolensk contrib main non-free' >> /etc/apt/sources.list apt-key add GPG-KEY-POSTGRESPRO apt update
Самое время установить PostgreSQL
apt -y install postgrespro-1c-11
После установки требуется настроить переменные окружения пользователя от имени которого будет работать PostgreSQL.
su - postgres echo PGDATA=/var/lib/pgpro/1c-11/data >> .bash_profile echo export PGDATA >> .bash_profile echo export PATH=/opt/pgpro/1c-11/bin:$PATH >> .bash_profile echo export MANPATH=/opt/pgpro/1c-11/share/man:$MANPATH >> .bash_profile exit
И настроить автоматический запуск PostgreSQL при старте системы.
systemctl enable postgrespro-1c-11 systemctl start postgrespro-1c-11 systemctl status postgrespro-1c-11
Теперь зададим пароль пользователя postgres для подключения к СУБД.
su - postgres psql ALTER USER postgres WITH ENCRYPTED PASSWORD 'yourpassword'; \q exit
Ну, и осталось перезапустить службу
systemctl restart postgrespro-1c-11
Настроим установленный ранее Webmin для работы с PostgrSQL, уж очень удобно с его помощью управлять базами данных. 🙂
Для этого открываем в браузере адрес https://127.0.0.1:10000 и обновляем установленные модули.
Теперь идём на страницу управления PostgreSQL Server и вносим небольшие изменения в настройки, указав в качестве Paths to host access config file путь /var/lib/pgpro/1c-11/data/pg_hba.conf
В результате вы получите возможность управлять PostgreSQL-сервером из WEB-интерфейса.
Аренда серверов.
Надёжные сервера с Pro-бегом
У ВАС В ОФИСЕ!1С:Предприятие «в облаке».
Безопасный доступ к своей 1С из офиса, командировки и т.п.!
IP-телефония в офис.
IP-телефония давно перестала быть роскошью в офисах.
Хотите себе в офис цифровую АТС — обращайтесь. !