Postgres Pro Enterprise
Postgres Pro Enterprise — это объектно-реляционная система управления базами данных (ОРСУБД, ORDBMS), разработанная Postgres Professional в рамках проекта Postgres Pro на основе PostgreSQL, в свою очередь, основанном на POSTGRES, Version 4.2 — программе, разработанной на факультете компьютерных наук Калифорнийского университета в Беркли. В POSTGRES появилось множество новшеств, которые были реализованы в некоторых коммерческих СУБД гораздо позднее.
Postgres Pro Enterprise, как и PostgreSQL поддерживает большую часть стандарта SQL и предлагает множество современных функций:
- сложные запросы
- внешние ключи
- триггеры
- изменяемые представления
- транзакционная целостность
- многоверсионность
Кроме того, пользователи могут всячески расширять Postgres Pro, так же как и PostgreSQL, например, создавая свои:
- типы данных
- функции
- операторы
- агрегатные функции
- методы индексирования
- процедурные языки
Особые возможности Postgres Pro Enterprise
- Симметричный отказоустойчивый кластер (мультимастер)
- Сжатие данных на уровне блоков
- Адаптивное планирование запросов
- Оптимизированное секционирование таблиц
- Инкрементальный бэкап
- Встроенный пулер запросов
- Полнотекстовый индекс с ранжированием по дополнительному критерию
- Встроенный планировщик заданий
- Автоматическая компиляция и планирование запросов
Почему выбирают СУБД Postgres Pro Enterprise?
- Производительность
До двух раз выше по сравнению с PostgreSQL.
- Безопасность
Сертификат ФСТЭК. Входит в Единый реестр Минкомсвязи. Совместим с СКЗИ «Крипто БД 2.0»
- Надежность
Отказоустойчивый кластер мультимастер сохранит данные при отказе любого узла.
- Опыт внедрений
СУБД используется крупными предприятиями и госструктурами: ФНС, МинФин, Газпромнефть и др.
- Техническая поддержка
Поддержка пользователей в режиме 24х7. Помощь в миграции. Обучение.
- Цена
Экономия до 10 раз по сравнению с зарубежными аналогами.
Различия между Postgres Pro Enterprise и PostgreSQL
Postgres Pro предоставляет наиболее актуальную версию PostgreSQL c дополнительными изменениями и расширениями. Этот продукт включает все новые возможности, реализованные компанией Postgres Professional, а также сторонние доработки, которые уже приняты сообществом PostgreSQL и попадут в новые версии PostgreSQL. Таким образом, пользователи Postgres Pro Enterprise получают ранний доступ к важным нововведениям и исправлениям.
Postgres Pro Enterprise отличают от PostgreSQL следующие усовершенствования:
- 64-битные идентификаторы транзакций, исключающие проблемы зацикливания.
- Сжатие на уровне страниц.
- Поддержка автономных транзакций.
- Поддержка обновления младшей версии без перезапуска сервера.
- «Отложенное» размещение временных таблиц на диске. Дисковое пространство для временных таблиц выделяется только при переполнении буферов (размером temp_buffers) и только тогда таблица сохраняется на диске. Так как дисковое пространство для временных таблиц теперь не выделяется сразу, это позволяет значительно сократить нагрузку на диск при работе с ограниченным количеством небольших временных таблиц.
- Экспериментальная функциональность приоритизации ресурсов позволяет выделять больше ресурсов более приоритетным сеансам.
- Автоматическое исправление страниц при потоковой репликации в случае повреждения данных (неиспорченные страницы запрашиваются с ведомого сервера).
- Справедливое распределение лёгких исключительных блокировок после получения заданного количества разделяемых блокировок.
- Управление объёмом кеша, который занимают подготовленные операторы. При включении параметра plan_cache_lru_size или plan_cache_lru_memsize разобранные деревья запросов и общие планы, которые не использовались в последнее время, вытесняются из кеша при достижении ограничений, заданных этими параметрами.
- Усовершенствование выбора между последовательным сканированием и сканированием по индексу.
- Улучшение в libpq обработки подключений с несколькими серверами и перехода от одного к другому.
- Реализация тайм-аута для простаивающих сеансов на стороне сервера.
- Добавление в libpq возможности забыть введённый пароль, что позволяет предотвратить переподключения, когда это требуется политикой безопасности.
- Поддержка вывода времени в pg_waldump.
- Смягчение ограничений синхронной репликации, в результате которого ведущий сервер может продолжать работать при временной недоступности одного из ведомых.
- Встроенный пул соединений, позволяющий ограничивать число обслуживающих процессов при подключении множества клиентов, не накладывая ограничения на использование параметров конфигурации сеансов, подготовленных операторов или временных таблиц.
- Режим автоподготовки операторов, позволяющий неявно подготавливать часто используемые операторы и таким образом оптимизировать затраты на их компиляцию и разбор при каждом последующем выполнении.
- Поддержка изменения конфигурации других сеансов. Например, этой возможностью можно воспользоваться, чтобы включить отладочные сообщения для трассировки сеансов с необычным поведением.
- Алгоритм поиска k ближайших соседей (k-NN) для индекса-B-дерева.
- Периодическая проверка соединения клиента с сервером во время выполнения запросов, что позволяет обнаруживать разрывы соединений раньше и освобождать ресурсы сервера при отключении клиентов.
- Улучшенная вариация pgbench, которая учитывает ошибки сериализации и взаимоблокировки в транзакциях, а также поддерживает составные команды.
- Устранено практически достижимое ограничение на число записей в ACL (списках управления доступом), связанных с таблицами и индексами.
- Представление pgpro_stat_wal_activity, показывающее объём файлов WAL, который генерирует каждый процесс.
- Исправление повреждённых данных WAL из буферов в оперативной памяти.
- Расширенные политики аутентификации, обеспечивающие эффективное управление паролями и контроль доступа.
- Встроенные механизмы защиты данных, которые позволяют стерилизовать объекты, перед удалением заполняя их нулями. Обнуление объектов может производиться перед удалением файлов на диске и перед удалением устаревших версий строк (очисткой страниц), освобождением ОЗУ и удалением или перезаписью файлов WAL. (Только сертифицированная редакция.)
- Проверка уникальных ограничений в индексах-B-деревьях, выполняемая модулем amcheck.
От Postgres Pro Standard унаследованы следующие усовершенствования:
- Улучшенный механизм проверки блокировок, не оказывающий отрицательного влияния на производительность.
- Увеличенная скорость и эффективность планирования для различных типов запросов.
- Уменьшенное потребление памяти при обработке сложных запросов со множеством таблиц.
- Добавление времени планирования в информацию, выводимую модулем auto_explain.
- Возможность замены нулевого байта заданным ASCII-символом при загрузке данных с помощью команды COPY FROM.
- Использование ICU на всех платформах с целью обеспечить платформонезависимую сортировку для различных локалей. По умолчанию провайдер правил сортировки icu задействуется для всех локалей, за исключением C и POSIX.
- Реализация механизма PTRACK, позволяющего программе pg_probackup отслеживать изменения страниц при создании инкрементальных резервных копий.
- Согласованное чтение на ведомых серверах.
- Поддержка чтения файлов pg_control предыдущих версий PostgreSQL/Postgres Pro утилитой pgpro_controldata.
- Проверка совместимости кластера, позволяющая определить, совместима ли текущая версия Postgres Pro с определённым кластером, и понять, какие параметры влияют на совместимость, не запуская сервер.
- Возможность изменения параметра restore_command без перезапуска сервера.
- Улучшения редактирования в командной строке с использованием WinEditLine в версии psql для Windows, в том числе поддержка автодополнение в консоли psql и изменение кодировки psql по умолчанию на UTF-8.
- Унифицированная структура пакетов двоичных файлов для всех дистрибутивов Linux, упрощающая миграцию между ними и позволяющая устанавливать несколько различных продуктов на базе PostgreSQL совместно без каких-либо конфликтов.
Postgres Pro Enterprise также включает следующие дополнительные модули:
- Расширение aqo для адаптивной оптимизации запросов.
- Модуль dump_stat, позволяющий сохранять статистику данных при резервном копировании и восстановлении.
- Модуль fasttrun, который предоставляет транзакционно-небезопасную функцию для усечения временных таблиц, что предотвращает разрастание каталога pg_class.
- Модуль fulleq, предоставляющий дополнительный оператор равенства для совместимости с Microsoft SQL Server.
- Модуль hunspell-dict, предоставляющий словари для ряда языков.
- Модуль in_memory, позволяющий размещать данные в общей памяти Postgres Pro.
- Модуль jsquery, реализующий специальный язык запросов для эффективного поиска по индексу в структурированных данных JSONB.
- Служба мониторинга mamonsu, исполненная в виде агента Zabbix.
- Модуль mchar, предоставляющий дополнительный тип данных для совместимости с Microsoft SQL Server.
- Расширение multimaster, превращающее Postgres Pro Enterprise в синхронный кластер без разделения ресурсов, который обеспечивает расширяемость OLTP для читающих транзакций, а также высокую степень доступности с автоматическим восстановлением после сбоев.
- Модуль online_analyze, привносящий набор функций, которые немедленно обновляют статистику в целевых таблицах после операций INSERT, UPDATE, DELETE или SELECT INTO в них.
- Пул соединений pgbouncer.
- Модуль pg_hint_plan, управляющий планом выполнения запросов со специальными указаниями для планировщика.
- Модуль pg_integrity_check, осуществляющий вычисление и проверку контрольных сумм отслеживаемых файлов. (Только сертифицированная редакция.)
- Модуль pg_pathman предоставляет оптимизированный механизм секционирования, функции для управления секциями, а также декларативный синтаксис. Начиная с Postgres Pro 12, использовать pg_pathman не рекомендуется. Применяйте вместо него реализованное в ванильной версии декларативное секционирование, описанное в Разделе 5.11.
- Расширение pg_proaudit, позволяющее отслеживать различные события, связанные с безопасностью.
- pg_probackup — менеджер резервного копирования и восстановления.
- Утилита pgpro_controldata, показывающая управляющую информацию кластера БД PostgreSQL/Postgres Pro и параметры совместимости кластера и/или сервера.
- Расширение pgpro_pwr, позволяющее получать отчёты по нагрузке, полезные для выявления наиболее ресурсоёмких операций в базе данных.
- Модуль pgpro_scheduler, в котором реализованы фоновые исполнители для планируемых задач.
- Расширение pgpro_stats, которое не только собирает статистику выполнения SQL-операторов, но и подсчитывает статистику событий ожидания.
- Модуль pg_query_state, дающий возможность узнавать текущее состояние выполнения запросов в обслуживающем процессе.
- Утилита pg_repack для реорганизации таблиц.
- Модуль pg_transfer, осуществляющий поддержку перемещаемых таблиц.
- Модуль pg_tsparser — альтернативный анализатор текстового поиска.
- Модуль pg_variables, предоставляющий функции для работы с переменными различных типов.
- Расширение pg_wait_sampling, предназначенное для периодического сбора статистики по событиям ожидания. Воспользовавшись этим расширением, вы сможете понять характер активности сервера, в том числе увидеть текущие события ожидания во всех обычных и фоновых рабочих процессах.
- Модуль plantuner, добавляющий поддержку указаний для планировщика, подключающих или отключающих определённые индексы при выполнении запроса.
- Модуль rum, предоставляющий индекс RUM на базе GIN.
- Модуль shared_ispell, позволяющий разместить словари в общей памяти.
- Модуль sr_plan, позволяющий сохранять и восстанавливать планы запросов.
- Экспериментальный модуль vops, реализующий вертикальную модель данных в Postgres Pro Enterprise. Эта модель позволяет многократно ускорить запросы OLAP с фильтрацией и агрегированием.
Выпуски Postgres Pro Enterprise следуют за выпусками PostgreSQL, хотя иногда могут выпускаться чаще. Схема версионирования Postgres Pro Enterprise основана на схеме версионирования PostgreSQL и включает дополнительную цифру.
Полезная информация:
Скачать буклет Postgres Pro Enterprise
Скачать документацию к Postgres Pro Enterprise