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.