E.1. Postgres Pro Standard 17.10.1 #

E.1.1. Обзор
E.1.2. Миграция на версию 17.10.1

Дата: 2026-06-11

E.1.1. Обзор #

Этот выпуск основан на PostgreSQL 17.10 и Postgres Pro Standard 17.9.1. Все усовершенствования, унаследованные от PostgreSQL 17.10, перечислены в Замечаниях к выпуску PostgreSQL 17.10. Другие важные изменения и улучшения перечислены ниже:

  • Добавлен параметр конфигурации 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 с дублирующимся параметром провайдер_локали. Теперь этот параметр создаётся только один раз, что позволяет избежать ошибок при восстановлении и обновлении.

  • Исправлена ошибка с оценкой количества строк соединения, когда для параметра 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 обновлён до версии 3.2. Включены следующие усовершенствования и исправления:

    • Добавлена новая функция aqo_storage_usage, которая позволяет получить текущий и максимальный размеры хранилища aqo и выделенной динамической разделяемой памяти.

    • Оптимизирована внутренняя структура хранилища aqo_data, а также улучшены механизмы для выделения динамической разделяемой памяти и использования блокировок при работе с данными этого хранилища. Эти улучшения позволили исправить ошибку с обновлением хранилища aqo_data, которая была вызвана исключительными блокировками на нижележащей хеш-таблице и приводила к постоянному росту сеансов в состоянии idle in transaction (простаивает в транзакции) и нестабильной работе aqo.

    • Исправлена ошибка сегментации, которая могла возникать после прерывания вложенной автономной транзакции, для которой использовался модуль aqo. Теперь aqo проверяет уровень вложенности автономных транзакций и не очищает свой локальный кеш при прерывании вложенных транзакций.

  • Обновлено решение BiHA. Включены следующие возможности, усовершенствования и исправления:

    • Расширение biha обновлено до версии 1.8.

    • Стабилизирована функциональность многоуровневой геораспределённости и катастрофоустойчивости. Эта функциональность больше не считается экспериментальной.

    • Добавлен параметр --username утилиты bihactl. Новый параметр можно использовать в следующих случаях:

      • При инициализации BiHA-кластера с нуля, если необходимо задать имя начального суперпользователя, отличное от postgres.

      • При преобразовании существующего узла, в котором имя начального суперпользователя не postgres.

    • Реализован ряд оптимизаций и исправлений для функциональности многоуровневой географической распределённости и катастрофоустойчивости, связанной с репликацией, назначением лидера вручную и автоматической синхронизацией.

    • Реализован ряд внутренних оптимизаций и исправлений функциональности каскадной репликации для повышения её надёжности.

    • Добавлены параметры конфигурации biha.ssl_certificate и biha.ssl_private_key. С помощью этих параметров можно изменить пути к публичному SSL-сертификату и закрытому SSL-ключу, которые используются для защиты служебных подключений между узлами инициализированного BiHA-кластера. За подробной информацией обратитесь к разделу Управление SSL для служебных подключений.

    • Добавлена проверка наличия роли biha_replication_user при преобразовании узла с помощью команды bihactl cluster init --convert.

    • Улучшена информативность сообщения об ошибке утилиты bihactl при выполнении команды bihactl node add --convert-standby с пустым значением параметра --pgdata.

    • Исправлена ошибка, при которой у роли BIHA_CLUSTER_MANAGEMENT_ROLE не было прав на выполнение функций BiHA после обновления версии расширения biha во время обновления кластера.

    • Исправлена ошибка, из-за которой не происходило аварийное переключение, поскольку при проведении выборов учитывался LSN рефери в режиме referee, если он превышал LSN последователя.

    • Устранена проблема частого появления в журнале предупреждения «[BiHA BC] NC config list getter failed» ([BiHA BC] Ошибка получения списка конфигурации NC) при вызовах функции biha.config и запросах к представлению biha.status_v.

    • Исправлена ошибка, из-за которой попытка удалить из кластера работающий узел приводила к аварийному завершению процесса на удаляемом узле.

    • Исправлена ошибка, из-за которой попытка удалить сегмент вызывала аварийное завершение процесса.

    • Исправлена ошибка, из-за которой не срабатывало назначение лидера вручную функцией biha.set_leader, если в кластере был узел в состоянии NODE_ERROR.

    • Устранена проблема инструмента pg_rewind, при которой узел BiHA-кластера не восстанавливался корректно в однопользовательском режиме, если узел был остановлен в режиме immediate.

    • Исправлено некорректное поведение параметра --use-leader утилиты bihactl, при котором утилита обращалась ко всем узлам кластера, а не только к лидеру.

    • Исправлена ошибка, из-за которой не удавалось добавить последователя с помощью pg_probackup.

    • Исправлена ошибка, из-за которой значение параметра конфигурации password_encryption не учитывалось утилитой bihactl при создании файла pg_hba.biha.conf.

  • Драйвер 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.

E.1.2. Миграция на версию 17.10.1 #

Если вы производите обновление выпуска Postgres Pro Standard, базирующегося на той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.

Важно

Чтобы обновить BiHA-кластер с Postgres Pro Standard версии 17.9 до Postgres Pro Standard версии 17.10, обратитесь к инструкциям по обновлению и миграции BiHA.

Если вы использовали предыдущую версию aqo и её потребовалось обновить, версия aqo на резервном сервере может отличаться от версии модуля на ведущем.

Чтобы избежать связанных с этим проблем, отключите aqo, задав для параметров aqo.enable и aqo.wal_rw значение off сначала на ведущем сервере, а потом на резервных серверах. После успешного обновления включите aqo, задав для параметров aqo.wal_rw и aqo.enable значение on сначала на резервных серверах, а потом на ведущем сервере.

Версия ABI может измениться в корректирующем выпуске Postgres Pro. В таком случае при попытке запустить расширение возникает ошибка ABI mismatch (Несоответствие ABI), поэтому обязательно установите новую версию расширения, поставляемую с новым выпуском Postgres Pro, или перекомпилируйте стороннее расширение, чтобы использовать его с текущей версией Postgres Pro.

Для перехода с PostgreSQL или выпуска Postgres Pro Standard, базирующегося на предыдущей основной версии PostgreSQL, обратитесь к инструкциям в Замечаниях к выпуску Postgres Pro Standard 17.0.1.