E.1. Postgres Pro Enterprise 14.22.1

Дата: 2026-03-17

E.1.1. Обзор

Этот выпуск основан на PostgreSQL 14.22 и Postgres Pro Enterprise 14.20.1. Все изменения, унаследованные от PostgreSQL 14.22, описаны в Замечаниях к выпуску PostgreSQL 14.22. По сравнению с Postgres Pro Enterprise 14.20.1 эта версия также содержит следующие изменения:

  • Сокращён объём отладочной информации, которая отправляется клиенту или записывается в журнал сервера. Сообщения уровня важности DEBUG1 об операциях с временными таблицами больше не выводятся.

  • Добавлены следующие изменения в реализацию crash_info:

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

    • Исправлена ошибка, которая могла возникать при попытке записать текст запроса в выходные файлы crash_info.

  • Реализованы следующие исправления и усовершенствования для CFS:

    • Улучшена производительность CFS. Теперь с алгоритмом zstd, применяемым по умолчанию, используются контексты сжатия.

    • Изменено поведение функции cfs_compression_ratio. Теперь эта функция возвращает значение NaN для несжатых отношений.

  • Исправлена проблема, возникавшая при обновлении кластера Postgres Pro Enterprise с использованием pg_upgrade. Некоторые файлы карты свободного пространства могли содержать обнулённые страницы, поэтому карта должна была считаться повреждённой. Теперь такие страницы не копируются в новый кластер.

  • Устранена проблема для нежурналируемых таблиц с преобразованием страниц из 32-битного в 64-битный формат после обновления Postgres Pro Enterprise с помощью pg_upgrade. Ранее, когда страница преобразовывалась только в памяти без записи на диск и одновременно автоочисткой удалялись соответствующие сегменты pg_xact, статус транзакции в кортежах терялся, что приводило к ошибкам доступа.

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

  • Исправлена ошибка, из-за которой процесс автоматической очистки зацикливался на одних базах данных и не очищал другие. Это происходило из-за «мягких» ограничений автоочистки, которые могли задаваться параметрами конфигурации vacuum_freeze_table_age и vacuum_multixact_freeze_table_age. Эти ограничения были удалены. Они больше не нужны, поскольку значения параметров autovacuum_freeze_max_age и autovacuum_multixact_freeze_max_age теперь можно изменить без перезагрузки сервера.

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

  • Исправлена ошибка, которая приводила к сбою daterange_inclusive при обработке пустых диапазонов.

  • Прекращена поддержка CentOS 7, RHEL 7, Oracle Linux 7, AlterOS 7.5, Debian 10, Альт 8/9 и SLES 12.

  • Устранена утечка памяти в расширении auto_dump.

  • Исправлена ошибка в postgres_fdw, которая могла возникать во время накопления результатов команд UPDATE ... RETURNING и DELETE ... RETURNING. Ранее состояние соединения с удалённым сервером не обновлялось после выполнения команды.

  • Обновлено расширение multimaster. Включены следующие усовершенствования:

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

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

    • Реализована фильтрация команд типа ALTER DATABASE для их выполнения локально на текущем узле. Ранее выполнение таких команд могло вызвать ошибку из-за попытки реплицировать их на все узлы кластера. За подробной информацией о командах, которые выполняются только локально, обратитесь к Подразделу F.33.6.1.

  • Обновлён модуль pgpro_bindump. Включены следующие исправления:

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

    • Исправлено некорректное определение редакции Postgres Pro в режиме источника данных PRO для Shardman.

  • pgbouncer обновлён до версии 1.25.1 для всех ОС, кроме Альт СП 8, для которой продолжает поставляться pgbouncer 1.24.0.

  • Обновлено расширение pg_proaudit. Включены следующие усовершенствования:

    • Добавлен параметр конфигурации pg_proaudit.log_rows, который включает или отключает регистрацию количества строк, затронутых SQL-командой.

    • Добавлено новое поле в журнал событий: продолжительность подключения. Теперь записи о событиях DISCONNECT содержат общую длительность подключения наряду с другими параметрами подключения.

  • Приложение pg_probackup обновлено до версии 2.8.13 Enterprise, в которой добавлена новая функциональность, улучшена производительность и исправлены некоторые ошибки:

    • Добавлены контроль целостности и проверка параметра recovery-target-name в архиве WAL при выполнении восстановления. Теперь предотвращаются ситуации, когда кластер Postgres Pro не может запуститься из-за недостижимости целевой точки восстановления. Если именованная точка восстановления была создана до последней резервной копии, процесс восстановления теперь корректно проверяет её существование.

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

    • Реализована совместимость с расширением pgpro_cpumeter. Файл pgpro_cpumeter.stat теперь добавляется в список исключений при выполнении резервного копирования.

    • Добавлена поддержка запросов с использованием модели virtual-hosted-style для S3-хранилищ, включая автоматическое определение virtual-hosted-style по формату hostname (если hostname начинается с имени бакета) и улучшенную совместимость с различными реализациями S3 API (AWS S3, SberCloud и другие). В virtual-hosted-style URL имя бакета включается в hostname, что исключает необходимость добавлять его к пути файла.

    • Устранена проблема, из-за которой флаг --skip-block-validation игнорировался при выполнении резервного копирования. Ранее это приводило к ошибке, если в кластере содержались страницы с некорректными контрольными суммами в заголовках. Это критически важно при включении контрольных сумм в старых кластерах, где уже могут существовать проблемы с контрольными суммами. Кроме того, теперь при использовании --skip-block-validation выводится предупреждение.

    • Улучшен механизм передачи статуса резервного копирования. Статус резервной копии теперь меняется на DONE до этапа проверки. Метаданные резервной копии записываются дважды: до проверки и по завершении резервного копирования. Команда show теперь отображает более точный статус резервной копии во время длительных проверок.

    • Устранена проблема, которая могла приводить к аварийному завершению работы, если файл backup_content.control был удалён перед выполнением резервного копирования в режиме DELTA.

  • Утилита pgpro_controldata обновлена до версии 18.2.0.

  • Обновлено расширение pgpro_cpumeter, чтобы удалить предупреждение, возникавшее при пустом значении machine_id.

  • Утилита pgpro_datactl обновлена до версии 1.3 со следующими улучшениями и исправлениями:

    • Добавлена команда estimate для оценки коэффициента сжатия различными алгоритмами, аналогичная функции cfs_estimate(relation).

    • Для команды stat добавлен флаг --per-file, позволяющий собирать подробную статистику по каждому файлу.

    • Добавлена поддержка русской локализации.

    • Исправлены диапазоны уровней сжатия для алгоритмов сжатия.

    • Исправлено поведение команды unpack. Ранее сжатые файлы перезаписывались при распаковке в тот же каталог и ошибочно удалялись при распаковке в другой каталог.

  • Приложение pgpro_scheduler обновлено до версии 2.12.2, в которой реализован улучшенный механизм расчёта необходимого количества фоновых рабочих процессов, а также предоставляются более подробные подсказки и предупреждения о нехватке рабочих процессов. За подробной информацией обратитесь к разделу Расчёт необходимого количества фоновых рабочих процессов.

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

    • Восстановлена возможность агрегирования статистики по сеансам, которая ранее была удалена как неиспользуемая. Будет ли агрегироваться статистика по сеансам, определяет параметр конфигурации pgpro_stats.track_sessions.

    • Улучшено поведение функций трассировки сеансов. Теперь функции pgpro_stats_trace_insert и pgpro_stats_trace_update завершаются ошибкой, если в передаваемой последовательности пар ключ-значение какой-либо атрибут фильтра встречается несколько раз. Если функции pgpro_stats_trace_update передаётся неправильный аргумент, изменения фильтра более не происходят. Функция pgpro_stats_trace_show теперь возвращает в точности те значения атрибутов explain*, которые были заданы для фильтра.

    • Добавлено исправление, благодаря которому удаётся избежать сбоя, если две или более константы имеют одно и то же расположение в тексте SQL-оператора.

  • Обновлена утилита pgpro_tune. Включены следующие изменения:

    • В конфигурацию пресета pgpro_tune default.tune добавлены параметры autovacuum_vacuum_scale_factor и autovacuum_vacuum_insert_scale_factor.

    • Исправлена ошибка, из-за которой утилита pgpro_tune не обрабатывала имена пресетов с пробелами при указании пресета в переменной окружения initdb PGPRO_TUNE. Теперь при ошибке pgpro_tune команда initdb также выводит ошибку.

    • Исправлен пресет default.tune, который теперь корректно отображает порядок значений параметров effective_io_concurrency и random_page_cost в зависимости от типа накопителя.

  • Обновлён модуль rum. Включены следующие изменения:

    • Добавлены функции, которые позволяют исследовать все типы страниц индекса RUM на низком уровне.

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

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

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

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

При обновлении отказоустойчивого кластера с Postgres Pro Enterprise версии 14.12.x или ниже сначала отключите автоматическое аварийное переключение узлов, если оно было включено, и обновите все резервные серверы, затем обновите ведущий сервер, повысьте резервный сервер до ведущего и перезапустите бывший ведущий сервер (возможно, с использованием pg_rewind).

Если вы создаёте резервные копии с помощью pg_probackup и ранее обновили его до версии 2.8.0 Enterprise или 2.8.1 Enterprise, обязательно обновите его до версии 2.8.2 Enterprise или выше и сделайте полную резервную копию базы данных после обновления, поскольку резервные копии, созданные с использованием этих версий, могут быть повреждены. Чтобы проверить, повреждены ли резервные копии, созданные с помощью версий 2.8.0 или 2.8.1, можно использовать версию 2.8.2.

Если вы хотите сохранить существующее представление карт видимости в pageinspect при миграции на текущую основную версию Postgres Pro Enterprise с использованием pg_upgrade, выполните команду VACUUM, прежде чем начинать обновление.

Начиная с Postgres Pro Enterprise 14.10.1, права ролей с атрибутом CREATEROLE ограничены, и для изменения свойств других ролей требуется наличие права ADMIN OPTION.

Настоятельно не рекомендуется обновлять кластер с 32-битными идентификаторами транзакций на версии Postgres Pro Enterprise ниже 14.9.2 при наличии мультитранзакций в базе данных, поскольку это может вызвать повреждение данных.

При обновлении до версии Postgres Pro Enterprise 14.8.1 и выше обязательно обновите pg_probackup Enterprise до версии 2.6.4 или выше, поскольку более ранние версии pg_probackup несовместимы с этими версиями Postgres Pro Enterprise.

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