E.1. Postgres Pro Enterprise 13.22.1
Дата выпуска: 2025-09-22
E.1.1. Обзор
Важно
Последний выпуск Postgres Pro 13 запланирован на ноябрь 2025 года. Дальнейшие обновления (включая устранение уязвимостей (CVE) и ошибок) для этой версии перестанут выпускаться с 1 декабря 2025 года. Если вы используете версию 13, рекомендуется выполнить обновление до актуальной основной версии не позднее 30 ноября 2025 года.
Этот выпуск основан на PostgreSQL 13.22 и Postgres Pro Enterprise 13.21.1. Все изменения, унаследованные от PostgreSQL 13.22, описаны в Замечаниях к выпуску PostgreSQL 13.22. По сравнению с Postgres Pro Enterprise 13.21.1 эта версия также содержит следующие изменения:
Улучшена производительность за счёт того, что файл
pg_internal.init
не аннулируется при анализе таблиц каталога, особенно когда статистика для этих таблиц часто меняется. Может быть полезно для 1C.Улучшена производительность за счёт уменьшения количества запросов на блокировку таблиц pg_attribute и pg_statistic при выполнении запросов с большим количеством отношений, которые отсутствуют в кеше системы. Может быть полезно в некоторых вариантах использования для 1C.
Улучшена производительность нетранзакционных операций усечения временных таблиц и операций быстрого усечения. Полезно для 1C.
Оптимизировано поведение при работе с функцией
COALESCE
. Теперь функция заменяется одним аргументом, если остальные аргументы оказываютсяnull
. Это позволяет улучшить оценку избирательности для условий запросов и создавать более эффективные планы выполнения запросов.Добавлены следующие изменения в реализацию crash_info:
Добавлены параметры конфигурации crash_info_timer, crash_info_timer_interval и crash_info_query_threshold, которые позволяют профилировать длительные запросы в выходных файлах
crash_info
.Расширена диагностическая информация, которую параметр конфигурации crash_info_dump позволяет записать в случае сбоя сервера. По умолчанию теперь поддерживается запись общей информации об ошибке (сигнале), а для Linux x64 также дамп информации о состоянии процессора и байтов рядом с RIP (return instruction pointer, указатель возврата инструкции). Всё это обеспечивает лучшую диагностику, в частности, для сигналов
SIGILL
(недопустимая инструкция). Также был изменён способ дампа стека в случае сбоев для Linux x64. Кроме того,memory_context
удалён из списка источников дампа по умолчанию, чтобы избежать сбоев, которые могут возникнуть при записи диагностической информации.
Реализованы следующие исправления и усовершенствования для CFS:
Улучшены операции со сжатыми табличными пространствами на архитектурах s390/s390x.
Улучшена оценка коэффициента сжатия таблиц с помощью функции
cfs_estimate(relation)
. Обратите внимание, что функциюcfs_estimate(relation)
следует использовать только после контрольной точки, чтобы избежать некорректных оценок.Отключено усечение для сжатых отношений в ходе операций очистки.
Прекращена поддержка шифрования для CFS, включая параметр конфигурации
cfs_encryption
.
Устранено чрезмерное потребление памяти выключенным встроенным пулом соединений.
Устранена проблема с автономными транзакциями, из-за которой после завершения транзакций ресурсы не освобождались, что приводило к накоплению ссылок на кешированные планы.
Устранено несоответствие образов страниц при добавлении кучи на пустую страницу. Ранее это могло привести к некорректному содержимому страниц на резервных серверах.
Устранена проблема с преобразованием страниц из 32-битного в 64-битный формат после обновления Postgres Pro Enterprise с помощью pg_upgrade. Ранее, когда страница преобразовывалась только в памяти без записи на диск и одновременно автоочисткой удалялись соответствующие сегменты
pg_xact
, статус транзакции в кортежах терялся, что приводило к ошибкам доступа.Устранено возможное условие гонки в процессе
walreceiver
.Устранена проблема при обработке очереди
LISTEN
/NOTIFY
, из-за которой нельзя было получить статус транзакции. Ранее процедураVACUUM FREEZE
могла увеличить значениеdatfrozenxid
слишком сильно.Устранена проблема, из-за которой планировщик мог выбирать неоптимальные планы выполнения запросов с оператором
LIKE
для типа данныхmchar
.Прекращена поддержка ОС Ubuntu 20.04.
Обновлён модуль aqo. Включены следующие исправления:
Устранено условие гонки при вызове функции
aqo_cleanup
из разных сеансов.Устранена проблема, из-за которой данные обучения aqo не сохранялись для запросов с материализацией.
Модуль auto_explain обновлён. В выводе время планирования запроса вынесено в отдельную строку под деревом планировщика, как это сделано в выводе
EXPLAIN
. Ранее pgbadger не мог распознать информацию о запросе и поэтому не включал её в отчёт.Устранена проблема, из-за которой модуль fasttrun не мог полностью очистить временные таблицы, если количество сегментов в кеше было меньше фактического количества сегментов на диске. В результате пространство на диске оставалось занятым, хотя таблица выглядела пустой.
Обновлено расширение multimaster. Включены следующие исправления и усовершенствования:
Улучшена способность узла возвращаться к обычной работе после навёрстывания за счёт ускорения процесса построения фильтра транзакции при запуске
walreceiver
.Исправлена ошибка, из-за которой при добавлении нового узла зависал процесс восстановления и возникал риск рассинхронизации данных.
Исправлены неожиданные ошибки при выполнении команд DDL, которые были вызваны некорректной обработкой сообщений аннулирования кеша каталога.
Реализована возможность настраивать LDAP-аутентификацию для pgbouncer с помощью PAM (Pluggable Authentication Modules, подключаемые модули аутентификации). За дополнительной информацией обратитесь к разделу Настройка LDAP-аутентификации для pgbouncer.
Обновлён модуль pg_freespacemap. Теперь он включает функцию
pg_freespace_relation_logical_blocks
для вычисления пространства на диске, которое используется слоями отношений. Это функция работает со сжатыми и несжатыми таблицами.Устранена проблема с выделением памяти в pg_prewarm, из-за которой ранее могли возникать ошибки типа «invalid memory alloc request size» (недопустимый запрошенный размер памяти), если для параметра конфигурации
shared_buffers
было задано огромное значение.Обновлено расширение pg_proaudit. Включены следующие усовершенствования:
Добавлена поддержка формата CEF для файлов журналов событий.
Скорректирован вывод pg_proaudit. Теперь поля
xid
иvxid
не отображаются, если имеют нулевое значение.
Приложение pg_probackup обновлено до версии 2.8.10 Enterprise, в которой добавлена новая функциональность, улучшена производительность и исправлены некоторые ошибки:
Для команды
add-instance
добавлен параметр--wal-tree
, который позволяет хранить заархивированные файлы WAL в древовидной структуре. Это повышает производительность операций при работе с журналами большого объёма.В вывод команды
show
добавлено полеpostgres-edition
в форматеJSON
для отображения информации о редакции СУБД.Улучшена работа с параметром
--dry-run
при восстановлении табличных пространств. Оценка операции и вывод плана стали более точными.Устранена проблема, связанная с вычислением окна хранения. Значение времени теперь берётся с компьютера, на котором работает pg_probackup. Окно хранения вычисляется правильно, даже если серверы расположены в разных часовых поясах.
Устранена проблема, связанная с работой команды
archive-get
. Теперь каталогpbk_prefetch
создаётся с правильными правами доступа, которые наследуются изPGDATA
.Устранён ложный сбой команды
checkdb
, возникавший в удалённом режиме при параллельных операцияхTRUNCATE
или удалении таблиц на резервных узлах.
Обновлена утилита pgpro_datactl. Добавлена новая функциональность:
Модуль pgpro_pwr обновлён до версии 4.10, в которой полностью изменён дизайн отчётов и добавлена поддержка PostgreSQL 18.
Расширение pgpro_scheduler обновлено до версии 2.12, в которую включены следующие усовершенствования и исправления:
Добавлены функции
schedule.clean_at_jobs_done
иschedule.clean_at_jobs_done
, с помощью которых можно очистить таблицуschedule.at_jobs_done
, удалив старые записи.Добавлена возможность менять время следующего запуска задания cron с
next_time_statement
путём обновления его свойствcron
,date
,dates
илиrule
с помощью функцииset_job_attributes()
.
Приложение pgpro_stats обновлено. Исправлена ошибка сегментации, которая могла возникать при определении дополнительных метрик. Ошибка была вызвана проблемой при выделении памяти.
Устранена проблема, из-за которой при использовании пресета
1c.tune
утилиты pgpro_tune задавались неверные значения параметров конфигурации.Модуль pg_query_state обновлён до версии 1.2, в которую добавлены функции pg_progress_bar и pg_progress_bar_visual, позволяющие отслеживать текущий прогресс выполнения запросов.
В утилиту pg_restore добавлен параметр
--enable-large-mem-buffers
, позволяющий не суперпользователю восстановить базу данных, которая не содержит больших значенийbytea
и записей с несколькими значениями типаtext
.Устранена проблема в модуле postgres_fdw, из-за которой запросы
UPDATE
иDELETE
с предложениемRETURNING
могли выдавать ошибки «out of memory for query result» (недостаточно памяти для результата запроса). Теперь результатыRETURNING
обрабатываются построчно.Обновлён модуль rum. Включены следующие исправления:
Исправлена ошибка сегментации, вызванная некорректным обращением к памяти, когда указатель на следующую страницу индекса использовался после того, как предыдущая страница была изменена другим потоком.
Устранён бесконечный цикл сканирования индекса при использовании нескольких предложений
ORDER BY
.
E.1.2. Миграция на версию 13.22.1
Если вы производите обновление выпуска Postgres Pro Enterprise, базирующегося на той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.
Версия ABI может измениться в корректирующем выпуске Postgres Pro. В таком случае при попытке запустить расширение возникает ошибка ABI mismatch
(Несоответствие ABI), поэтому обязательно установите новую версию расширения, поставляемую с новым выпуском Postgres Pro, или перекомпилируйте стороннее расширение, чтобы использовать его с текущей версией Postgres Pro.
Если вы создаёте резервные копии с помощью 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 13.13.1, права ролей с атрибутом CREATEROLE
ограничены, и для изменения свойств других ролей требуется наличие права ADMIN OPTION
.
Настоятельно не рекомендуется обновлять кластер с 32-битными идентификаторами транзакций на версии Postgres Pro Enterprise ниже 13.12.2 при наличии мультитранзакций в базе данных, поскольку это может вызвать повреждение данных.
При обновлении до версии Postgres Pro Enterprise 13.11.1 и выше обязательно обновите pg_probackup до версии 2.6.4 или выше, поскольку более ранние версии pg_probackup несовместимы с этими версиями Postgres Pro Enterprise.
Если вы ранее мигрировали на Postgres Pro Enterprise версии 13.3.1 или ниже, обязательно перестройте индексы GIN, выполнив команду REINDEX
.
Если вы используете PTRACK в процедуре резервного копирования, реализуемой c помощью утилиты pg_probackup, и обновляетесь с Postgres Pro Enterprise версии 13.2.2 или ниже, сделайте полную резервную копию базы данных после обновления.
Если в вашей инсталляции Postgres Pro Enterprise 13.2.1 имеются сжатые табличные пространства, созданные без явного выбора алгоритма pglz
, произведите обновление следующим образом. До обновления выгрузите полный дамп, используя pg_dumpall. Обновите Postgres Pro Enterprise, пересоздайте кластер баз данных и восстановите все данные из дампа. Затем вы можете создать табличные пространства CFS по прежней схеме.
Если вы уже обновили инсталляцию Postgres Pro Enterprise 13.2.1 с табличными пространствами CFS и потеряли доступ к сжатым данным, обратитесь к службе поддержки.
Для перехода с PostgreSQL, а также с выпуска Postgres Pro Standard или Postgres Pro Enterprise, базирующегося на предыдущей основной версии PostgreSQL, обратитесь к инструкциям по миграции на версию 13.