E.1. Postgres Pro Standard 18.4.1 #
Дата: 2026-07-03
E.1.1. Обзор #
Этот выпуск основан на PostgreSQL 18.4 и Postgres Pro Standard 18.3.1. Все усовершенствования, унаследованные от PostgreSQL 18.4, перечислены в Замечаниях к выпуску PostgreSQL 18.4. Другие важные изменения и улучшения перечислены ниже:
Реализована поддержка решения Встроенная отказоустойчивость (BiHA) (Built-in High Availability), которое предоставляет функциональность для развёртывания и управления кластером с физической репликацией и встроенными возможностями аварийного переключения узлов, отказоустойчивости и автоматического восстановления узлов. Решение BiHA управляется утилитой bihactl и расширением biha. Ранее решение BiHA было доступно только для Postgres Pro Enterprise 16 и выше, а также для Postgres Pro Standard 17.9 и выше.
Решение BiHA для Postgres Pro Standard предоставляет полную функциональность, включая каскадную репликацию и многоуровневую географическую распределённость и катастрофоустойчивость.
Решение BiHA для Postgres Pro Standard не поддерживается на архитектуре процессоров Эльбрус.
Добавлен параметр конфигурации log_parameter_types, который включает или отключает отображение типа данных для каждого значения привязанных SQL-параметров подготовленного запроса в сообщениях журнала. Например,
[integer] $1 = '42'.Оптимизирован механизм расчёта избирательности соединения для работы с большими списками часто встречаемых значений (MCV). Его алгоритмическая сложность была квадратичной и приводила к снижению производительности при работе с высокими значениями ориентира статистики по столбцам таблиц. Эта оптимизация может быть полезна для нагрузок типа 1C.
Реализован запрет на изменение параметра конфигурации hba_file в сертифицированной редакции Postgres Pro Standard. Для повышения уровня безопасности также рекомендуется использовать pg_integrity_check, который автоматически проверяет целостность критически важных файлов перед запуском сервера.
В выходные файлы crash_info добавлены идентификаторы сборок исполняемых файлов и разделяемых библиотек.
Улучшено планирование условий самосравнения, например
col = col. Ранее подобные конструкции могли приводить к некорректной оценке количества строк и вызывать последовательное сканирование вместо более оптимального плана. Теперь такие строгие сравнения преобразуются в эквивалентную проверкуIS NOT NULL, когда это безопасно, что обеспечивает более качественный выбор планов и повышает точность оценки количества строк.Исправлена проблема, из-за которой обслуживающий процесс мог останавливаться при вызове функции pg_diagdump с выключенным параметром конфигурации crash_info. Теперь выводится сообщение об ошибке.
Исправлена ошибка при восстановлении кластера с помощью pg_dump/pg_dumpall. Ранее pg_dump/pg_dumpall могли генерировать некорректную команду
CREATE DATABASEс дублирующимся параметромпровайдер_локали. Теперь этот параметр создаётся только один раз, что позволяет избежать ошибок при восстановлении и обновлении.Устранена проблема, которая могла приводить к сбою pg_dump при попытке выгрузить данные с параметром
--statisticsили--statistics-only. Проблема могла возникать, если у таблицы было более одного индекса и один из них был индексом по выражениям.Исправлено чрезмерное потребление памяти, которое могло приводить к значительному увеличению времени выполнения запросов и аварийным остановам сервера с последующим восстановлением при обновлении строк в таблицах с генерируемыми столбцами.
Исправлена ошибка с оценкой количества строк соединения, когда для параметра enable_compound_index_stats установлено значение
on.Удалена функциональность оптимизатора для добавления узлов плана
Index Only Scanниже узловAppend, которые генерируются для предложенийOR, если для параметра enable_appendorpath установлено значениеon. Эта функциональность могла приводить к некорректным планам выполнения запросов и полученным данным.Добавлена утилита pgbouncer_exporter, экспортирующая метрики Prometheus для pgbouncer.
Добавлен модуль pg_hint_plan, который позволяет управлять планами выполнения запросов с помощью указаний для планировщика. Ранее этот модуль был доступен только в составе Postgres Pro Enterprise.
Добавлена утилита pgpro_validate для проверки целостности данных экземпляра Postgres Pro.
Модуль aqo обновлён до версии 4.1. Включены следующие усовершенствования и исправления:
Добавлена новая функция aqo_storage_usage, которая позволяет получить текущий и максимальный размеры хранилища aqo и выделенной динамической разделяемой памяти.
Оптимизирована внутренняя структура хранилища aqo_data, а также улучшены механизмы для выделения динамической разделяемой памяти и использования блокировок при работе с данными этого хранилища. Эти улучшения позволили исправить ошибку с обновлением хранилища
aqo_data, которая была вызвана исключительными блокировками на нижележащей хеш-таблице и приводила к постоянному росту сеансов в состоянииidle in transaction(простаивает в транзакции) и нестабильной работе aqo.Исправлена ошибка сегментации, которая могла возникать после прерывания вложенной автономной транзакции, для которой использовался модуль aqo. Теперь aqo проверяет уровень вложенности автономных транзакций и не очищает свой локальный кеш при прерывании вложенных транзакций.
Драйвер ODBC обновлён до версии 18.00.0001.
Модуль orafce обновлён до версии 4.16.5.
Модуль pg_query_state обновлён. Исправлена проблема, из-за которой модуль мог зависать в ожидании ответа от обслуживающего процесса, выполняющего исследуемый запрос.
Обновлено расширение pg_proaudit. Включены следующие исправления и усовершенствования:
Добавлен параметр конфигурации pg_proaudit.log_file_mode, который устанавливает права доступа к новым файлам журнала событий, создаваемым pg_proaudit. Обратите внимание, что владелец сервера всегда имеет доступ к этим файлам, независимо от значения этого параметра.
Добавлено новое поле для всех типов событий, записываемых в файлы CSV и syslog: IP-адрес источника события. Ранее это поле отображалось только для событий
AUTHENTICATEв формате CEF.Расширено действие параметра конфигурации pg_proaudit.log_rows, который включает или отключает регистрацию количества строк, затронутых SQL-командой. Теперь количество затронутых строк записывается для всех форматов регистрируемых событий.
Добавлена проверка уникального идентификатора события (UUID) для предотвращения неправильного обращения к памяти.
Исправлена ошибка, из‑за которой поле
dstсобытий, регистрируемых в формате CEF, заполнялось неправильно.Исправлена проблема с избыточным использованием памяти при обработке событий
DISCONNECT. Ранее хеш‑таблица, размер которой был пропорционален значению max_connections, приводила к избыточному потреблению памяти при больших значениях этого параметра. Теперь данные хранятся более эффективно.Исправлена ошибка анализатора запросов в pg_proaudit. Ранее некоторые символы не экранировались при записи событий в формате CEF. Теперь символы экранируются корректно в соответствии со спецификацией CEF.
Приложение pg_probackup обновлено до версии 2.8.14, которая включает следующие улучшения и исправления:
Добавлена поддержка абсолютных путей в параметре
--wal-file-path.Исправлено инкрементальное резервное копирование в режиме
PAGEс параметром--stream. Теперь при таком сочетании параметров WAL-файлы корректно сохраняются и внутри резервной копии, и в отдельном архиве.
Обновлён модуль pgpro_bindump. Включены следующие улучшения и исправления:
Добавлена поддержка параметра
--exclude-pathдля исключения определённых файлов или каталогов из резервного копирования в режимеPRO.Оптимизирована производительность резервного копирования за счёт исключения временных файлов процесса
postmaster.Исправлено некорректное имя пакета в сообщении об ошибке, возникавшей при неудачной загрузке библиотеки
libpb3_encoder.soмодулем pgpro_bindump. Теперь в сообщении корректно рекомендуется установить пакетlibpb3-encoderвместо ошибочногоlibpgprobackup3.
Утилита pgpro_datactl обновлена до версии 1.5.
Модуль pgpro_pwr обновлён до версии 4.13, в которой добавлена поддержка статистики Postgres Pro Shardman, общей для кластера. Она также содержит некоторые улучшения и исправления.
Обновлено расширение pgpro_stats. Исправлено чрезмерное потребление памяти запросом, использовавшим pgpro_stats с установленным значением
allдляpgpro_stats.track. При этом значении функция, которая присваивает идентификаторы планов, вызывалась многократно и накопленная память освобождалась неоптимально.Обновлена утилита pgpro_tune. Включены следующие усовершенствования:
Улучшен вывод утилиты, который теперь включает использованный пресет и отображает корректный формат даты и времени применения параметров конфигурации.
Обновлены пресеты для улучшения производительности Postgres Pro.
Исправлена проблема, из-за которой параметр конфигурации shared_buffers вычислялся некорректно при использовании initdb с включённым расширением pgpro_tune. Эта проблема могла приводить к замедлению работы команды.
Обновлён модуль pg_variables для поддержки Postgres Pro/ PostgreSQL 18.
Расширение pgvector обновлено до версии 0.8.2.
Обновлён модуль rum. Улучшена производительность поиска по индексу RUM при помощи операторов индекса
<=|и|=>, если для параметра хранения индекса order_by_attach задано значениеtrue.Прекращена поддержка расширения pg_tsparser.
Прекращена поддержка модуля shared_ispell.
E.1.2. Миграция на версию 18.4.1 #
Если вы производите обновление выпуска Postgres Pro Standard, базирующегося на той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.
Версия ABI может измениться в корректирующем выпуске Postgres Pro. В таком случае при попытке запустить расширение возникает ошибка ABI mismatch (Несоответствие ABI), поэтому обязательно установите новую версию расширения, поставляемую с новым выпуском Postgres Pro, или перекомпилируйте стороннее расширение, чтобы использовать его с текущей версией Postgres Pro.
Для перехода с PostgreSQL или выпуска Postgres Pro Standard, базирующегося на предыдущей основной версии PostgreSQL, обратитесь к инструкциям в Замечаниях к выпуску Postgres Pro Standard 18.0.1.