Postgresql сборка astra linux

Аннотация

В данной статье представлена инструкция по установке и первичной настройке СУБД 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/

      Установка пакетов

      1. Подключить репозитории:
        1. основной репозиторий и актуальное оперативное обновление основного репозитория;
        2. только для установки незащищенной версии 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 начиная с 13 версии с поддержкой ICU.

        Для однообразной сортировки в PostgreSQL на Windows и Linux, и для сортировки как в SQL Server, используется провайдер icu, который использует внешнюю библиотеку ICU. Локали ICU можно использовать, только если поддержка ICU была включена в конфигурации сборки PostgreSQL.

        Для установки PostgreSQL требуется сборка PostgreSQL начиная с 13 версии с поддержкой ICU.

        Ограничения PostgreSQL

        Основные ограничения PostgreSQL, которые отличаются от SQL Server (https://postgrespro.ru/docs/postgresql/14/limits):

        Максимальная длина идентификатора 63 байта (имена таблиц, ключей, индексов и других объектов базы данных (https://postgrespro.ru/docs/postgresql/14/sql-syntax-lexical#SQL-SYNTAX-IDENTIFIERS)).

        Настройка PostgreSQL

        Надо настроить PostgreSQL, по умолчанию PostgreSQL использует 256 МБ памяти.

        Для генерации настроек по конфигурации сервера надо зайти на https://www.pgconfig.org/ и заполнить параметры.

        Далее на вкладке «Export config» выберете формат ALTER SYSTEM commands для изменения параметров PostgreSQL, запустите полученный скрипт на сервере PostgreSQL и перезапустите сервис PostgreSQL после выполнения скрипта.

        После запуска скриптов надо перезапустить сервис PostgreSQL:

        sudo service postgresql restart

        # OS Type: GNU/Linux based
        # Architecrure: 64 Bits # Storage type: ssd
        # Application profile: ERP or long transaction applications
        # CPUs num: 16
        # Total Memory: 40 GB
        # Connections num: 1000
        # Data Storage: ssd
        # DB Version: 13

        SQL -- Memory Configuration ALTER SYSTEM SET shared_buffers TO '10GB'; ALTER SYSTEM SET effective_cache_size TO '30GB'; ALTER SYSTEM SET work_mem TO '14MB'; ALTER SYSTEM SET maintenance_work_mem TO '2GB'; -- Checkpoint Related Configuration ALTER SYSTEM SET min_wal_size TO '2GB'; ALTER SYSTEM SET max_wal_size TO '3GB'; ALTER SYSTEM SET checkpoint_completion_target TO '0.9'; ALTER SYSTEM SET wal_buffers TO '-1'; -- Network Related Configuration ALTER SYSTEM SET listen_addresses TO '*'; ALTER SYSTEM SET max_connections TO '1000'; -- Storage Configuration ALTER SYSTEM SET random_page_cost TO '1.1'; ALTER SYSTEM SET effective_io_concurrency TO '200'; -- Worker Processes Configuration ALTER SYSTEM SET max_worker_processes TO '8'; ALTER SYSTEM SET max_parallel_workers_per_gather TO '2'; ALTER SYSTEM SET max_parallel_workers TO '2'; -- Logging configuration for pgbadger ALTER SYSTEM SET logging_collector TO 'on'; ALTER SYSTEM SET log_checkpoints TO 'on'; ALTER SYSTEM SET log_connections TO 'on'; ALTER SYSTEM SET log_disconnections TO 'on'; ALTER SYSTEM SET log_lock_waits TO 'on'; ALTER SYSTEM SET log_temp_files TO '0'; ALTER SYSTEM SET lc_messages TO 'C'; -- Adjust the minimum time to collect the data ALTER SYSTEM SET log_min_duration_statement TO '10s'; ALTER SYSTEM SET log_autovacuum_min_duration TO '0'; -- CSV Configuration ALTER SYSTEM SET log_destination TO 'csvlog';

        После запуска скрипта с установкой настроек нужно перезапустить сервис PostgreSQL:

        sudo service postgresql restart

        Настройка приложения

        Статьи по настройкам быстродействию PostgreSQL через строку подключения:

        Источник

        Читайте также:  B43 broadcom linux driver
Оцените статью
Adblock
detector