2. Возможности Postgres Pro Shardman #
Postgres Pro Shardman предоставляет наиболее актуальную версию PostgreSQL c дополнительными изменениями и расширениями. Этот продукт включает все новые возможности, реализованные компанией Postgres Professional, а также сторонние доработки, которые уже приняты сообществом PostgreSQL и попадут в новые версии PostgreSQL, а также некоторые возможности, унаследованные от Postgres Pro Enterprise. Таким образом, пользователи Postgres Pro Shardman получают ранний доступ к важным нововведениям и исправлениям.
Примечание
Postgres Pro Shardman предоставляется по следующей лицензии: https://postgrespro.ru/products/postgrespro/eula. Обязательно ознакомьтесь с условиями лицензии, прежде чем загружать и использовать Postgres Pro Shardman.
Postgres Pro Shardman обладает следующими преимуществами и улучшениями совместимости:
- Строгие гарантии ACID относительно других распределённых баз данных.
- Совместимость с Postgres Pro Enterprise.
- Поддержка одновременной работы нескольких кластеров в рамках одного распределённого кластера.
- Прозрачное горизонтальное масштабирование без необходимости перехода к СУБД NoSQL.
- Встроенная поддержка репликации без единой точки отказа, возможность назначения любого узла координатором без необходимости выключения системы и без потери данных.
- Поддержка до 100 узлов кластера.
- Высокая степень доступности с поддержкой режимов ведущего и резервного узлов, а также синхронного решения для обеспечения отказоустойчивости.
- Инструменты для поддержки уровня изоляции
REPEATABLE READ
в распределённой системе, а также рекомендательные блокировки. - Возможность работы с кластером как с полнофункциональной СУБД.
- Инструменты резервного копирования и восстановления для поддержки полного и инкрементального резервного копирования с журналированием.
- Восстановление на момент времени (PITR) в качестве согласованной точки синхронизации.
- Потоковая репликация.
- Создание кластера с высокой доступностью с несколькими ведущими узлами при помощи специальных утилит.
- Хранимые процедуры.
- Полнотекстовый поиск.
- Покрывающие индексы.
- Индексы B-tree, hash, GiST, GIN, SP-GiST, BRIN.
- Процедурные языки Perl и Python.
- Поддержка стандарта ANSI SQL.
- Хранение и обработка большого объёма данных (от 1 ПБ).
- Интерфейсы для работы с C++, Ruby, C, ODBC, Perl, Python, Tcl и Java.
- Кодировки EUC, UTF-8 и Mule.
- Сжатая файловая система.
- Обращение к данным, находящимся на внешних серверах PostgreSQL, с помощью postgres_fdw.
- Встроенный агент мониторинга.
- Неограниченное количество записей и индексов, максимальный размер таблицы — 32 ТБ, максимальный размер атрибута — 1 ГБ, максимальное количество атрибутов — 1600.
- Тонкая настройка управления доступом на основе разных уровней доступа и ролей.
От Postgres Pro Enterprise дополнительно унаследованы следующие усовершенствования:
- 64-битные идентификаторы транзакций, исключающие проблемы зацикливания. (См. Подраздел 23.1.5.)
- Сжатие на уровне страниц. (См. Главу 31.)
- Справедливое распределение лёгких исключительных блокировок после получения заданного количества разделяемых блокировок. (См. описание параметра lwlock_shared_limit.)
- Улучшение в libpq обработки подключений с несколькими серверами и перехода от одного к другому. (См. описание параметров hostorder и failover_timeout.)
- Добавление в libpq возможности забыть введённый пароль, что позволяет предотвратить переподключения, когда это требуется политикой безопасности. (См. описание параметра reusepass.)
- Поддержка вывода времени в pg_waldump.
- Алгоритм поиска k ближайших соседей (k-NN) для индекса-B-дерева. (См. Раздел 11.13.)
- Устранено практически достижимое ограничение на число записей в ACL (списках управления доступом), связанных с таблицами и индексами.
- Представление pgpro_stat_wal_activity, показывающее объём файлов WAL, который генерирует каждый процесс.
- Проверка уникальных ограничений в индексах-B-деревьях, выполняемая модулем
amcheck
. - Поддержка передачи именованных и позиционных аргументов скриптам, вызываемым командой
\i
в psql. - Корпоративная редакция приложения pg_probackup, поддерживающая интерфейс Simple Storage Service (S3) для хранения данных в частных облачных хранилищах, CFS (сжатую файловую систему) для инкрементного копирования, а также алгоритмы сжатия lz4 и zstd.
- Исключение дубликатов блокировок, благодаря которому обеспечивается эффективное хранение в памяти и отслеживание всех исключительных блокировок, удерживаемых процессом запуска резервного сервера во время воспроизведения WAL.
- Оптимизированный механизм для работы с метаданными таблиц, который позволяет получать информацию об атрибутах с использованием системного кеша вместо прямого чтения из системного каталога.
От Postgres Pro Standard дополнительно унаследованы следующие усовершенствования:
- Увеличенная скорость и эффективность планирования для различных типов запросов.
- Уменьшенное потребление памяти при обработке сложных запросов со множеством таблиц.
- Добавление времени планирования в информацию, выводимую модулем auto_explain.
Возможность замены нулевого байта заданным ASCII-символом при загрузке данных с помощью команды
COPY FROM
. (См. описание параметра nul_byte_replacement_on_import.)Возможность замены символа
'\u0000'
заданным символом Unicode при вызове функции, обрабатывающей JSONB. (См. описание параметра unicode_nul_character_replacement_in_jsonb.)- Реализация механизма PTRACK, позволяющего программе pg_probackup отслеживать изменения страниц при создании инкрементальных резервных копий.
- Возможность изменения параметра
restore_command
без перезапуска сервера. - Расширенные политики аутентификации, обеспечивающие эффективное управление паролями и контроль доступа. (См. CREATE PROFILE и ALTER ROLE).
- Встроенные механизмы защиты данных, которые позволяют стерилизовать объекты, перед удалением заполняя их нулями. Обнуление объектов может производиться перед удалением файлов на диске и перед удалением устаревших версий строк (очисткой страниц), освобождением ОЗУ и удалением или перезаписью файлов WAL. (Только сертифицированная редакция.)
- Статистика очистки таблиц, индексов и баз данных в системных представлениях.
- Предопределённые роли, позволяющие создавать табличные пространства и управлять профилями без прав суперпользователя.
- Сбор информации о сбоях сервера, который включается параметром конфигурации crash_info и находится под управлением нескольких параметров, включая этот.
- Оптимизированное потребление памяти при оценке избирательности для каждого элемента массива.
Postgres Pro Shardman также включает следующие дополнительные модули и приложения:
- Расширение aqo для адаптивной оптимизации запросов.
- Пул соединений pgbouncer.
- Модуль pg_integrity_check, осуществляющий вычисление и проверку контрольных сумм отслеживаемых файлов. (Только сертифицированная редакция.)
- Расширение pg_proaudit, позволяющее отслеживать различные события, связанные с безопасностью.
- pg_probackup — менеджер резервного копирования и восстановления.
- Утилита pgpro_controldata, показывающая управляющую информацию кластера БД PostgreSQL/Postgres Pro Shardman и параметры совместимости кластера и/или сервера.
- Расширение pgpro_pwr, позволяющее получать отчёты по нагрузке, полезные для выявления наиболее ресурсоёмких операций в базе данных.
- Расширение pgpro_stats, которое собирает статистику выполнения SQL-операторов, подсчитывает статистику событий ожидания и предоставляет прочие полезные метрики, которые в PostgreSQL нельзя получить никак иначе. Оно также обеспечивает возможность трассировки сеансов приложений и может создавать представления, эмулирующие другие расширения для сбора статистики.
- Модуль pg_query_state, дающий возможность узнавать текущее состояние выполнения запросов в обслуживающем процессе.
- Расширение pgvector, предоставляющее поиск сходства векторов в Postgres Pro Shardman.
- Расширение pg_wait_sampling, предназначенное для периодического сбора статистики по событиям ожидания. Воспользовавшись этим расширением, вы сможете понять характер активности сервера, в том числе увидеть текущие события ожидания во всех обычных и фоновых рабочих процессах.
Postgres Pro Shardman предоставляет расширенные возможности и функциональность, поэтому предъявляет более строгие требования к поддерживаемым операционным системам. Postgres Pro Shardman совместим со следующими ОС:
- Ubuntu 20.04/22.04
- Debian 10/11/12
- Red Hat Enterprise Linux 7/8/9
- РЕД ОС 7.3/8
- Альт 9/10/10SP
- Astra Linux 1.7/1.8/s390
Важно
Любые упоминания Windows или другой операционной системы, отличной от Linux, в этой документации неприменимы к Postgres Pro Shardman.
Выпуски Postgres Pro Shardman следуют за выпусками PostgreSQL, хотя иногда могут выпускаться чаще. Схема версионирования Postgres Pro Shardman основана на схеме версионирования PostgreSQL и включает дополнительную цифру.