E.1. Postgres Pro Enterprise 13.21.1
Дата выпуска: 2025-06-02
E.1.1. Обзор
Важно
Последний выпуск Postgres Pro 13 запланирован на ноябрь 2025 года. Дальнейшие обновления (включая устранение уязвимостей (CVE) и ошибок) для этой версии перестанут выпускаться с 1 декабря 2025 года. Если вы используете версию 13, рекомендуется выполнить обновление до актуальной основной версии не позднее 30 ноября 2025 года.
Этот выпуск основан на PostgreSQL 13.21 и Postgres Pro Enterprise 13.20.1. Все изменения, унаследованные от PostgreSQL 13.21, описаны в Замечаниях к выпуску PostgreSQL 13.21. По сравнению с Postgres Pro Enterprise 13.20.1 эта версия также содержит следующие изменения:
Добавлен параметр конфигурации enable_alternative_sorting_cost_model, который позволяет включать или отключать использование планировщиком альтернативной модели подсчёта стоимости сортировки кортежей.
Оптимизирована производительность при работе с метаданными таблиц за счёт получения информации об атрибутах с использованием системного кеша вместо чтения напрямую из системного каталога.
Добавлены следующие изменения в реализацию crash_info:
Добавлена обработка сигналов
SIGILL
в процесс обработкиcrash_info
.В выходные файлы
crash_info
добавлены новые сведения: время запуска процесса и текст запроса при планировании.Исправлены некорректные имена функций в первых 2-3 строках трассировки стека
crash_info
.Исправлено возможное усечение данных в конце файлов выгрузки SQL-запросов. Ранее переполнение буфера при выгрузке SQL-запроса могло приводить к тому, что записывались не все данные, в результате чего в конце файлов, создаваемых
crash_info
, могли содержаться усечённые данные.Исправлена обработка сигналов о сбоях (отправленных командой kill) обслуживающими процессами. Ранее с первым сигналом информация
crash_info
отправлялась в журнал, но процесс продолжал работу без создания дампа памяти, даже если он был настроен. И только со вторым сигналом обслуживающий процесс завершался и создавался дамп памяти так, как ожидалось.
Исправлены следующие проблемы для CFS:
Обеспечена совместимость CFS с командами
ALTER TABLESPACE ... SET/RESET
.Исправлена проблема выделения памяти в критической секции реализации
VACUUM ANALYZE
для сжатых таблиц.
Исправлены следующие ошибки, связанные с автономными транзакциями:
Устранена ошибка сегментации, которая могла возникать при использовании модуля postgres_fdw с автономными транзакциями.
Исправлена ошибка, при которой временные таблицы пропадали из родительской транзакции при откате автономной транзакции.
Исправлена проблема, из-за которой столбец
xact_start
представленияpg_stat_activity
оказывался пустым для обслуживающих процессов, выполняющих автономные транзакции.
Исправлена проблема с недостающей статистикой об очистке при использовании нескольких рабочих процессов очистки индексов.
Устранена проблема, при которой процесс контрольной точки мог зависать, постоянно выдавая ошибку «invalid memory alloc request size» (недопустимый запрошенный размер памяти). Проблема могла возникать, если для параметра конфигурации
shared_buffers
было задано огромное значение, в результате чего процесс контрольной точки мог запрашивать выделение памяти, превышающее допустимое ограничение.Исправлено некорректное использование циклических блокировок в процессе автоматического исправления страниц.
Добавлено расширение daterange_inclusive, которое позволяет добавлять в вывод верхнюю границу временного диапазона.
Добавлено расширение pg_failover_slots в виде отдельного пакета. Оно предназначено для автоматического создания и синхронизации слотов логической репликации на физических репликах.
Добавлена утилита pgpro_datactl для управления файлами данных Postgres Pro, которая включает в себя модуль распаковки и анализа файлов CFS.
Добавлена утилита pgpro_tune, которая позволяет устанавливать параметры конфигурации Postgres Pro автоматически для всех операционных систем, за исключением Windows.
В initdb добавлена новая переменная окружения
PGPRO_TUNE
, которая указывает, нужно ли использовать утилиту pgpro_tune без изменения параметров в командной строке.Экспериментальное расширение vops признано устаревшим.
Удалён параметр
--tune
программыpg-setup
. Вместо этого используйте новую утилиту pgpro_tune.Расширение multimaster обновлено до версии 1.3.0, в которую включены следующие исправления и усовершенствования:
Улучшен механизм удаления старых точек синхронизации узлами. Ранее каждый узел удалял только часть таблицы точек синхронизации и реплицировал изменения на другие узлы. Такой подход мог приводить к ошибкам синхронизации и невозможности удалить старые точки синхронизации. Теперь каждый узел удаляет все точки синхронизации и не реплицирует изменения на другие узлы.
Исправлено потенциальное зависание узлов во время навёрстывания при попытке обработать прерванные DDL-транзакции в кластере с тремя или более узлами.
Обновлён модуль oracle_fdw. Включены следующие исправления и усовершенствования:
Увеличена длина строк вывода EXPLAIN для соответствия условиям фильтров некоторых запросов к каталогам Oracle. Новое значение — 3000 символов.
Устранён сбой, который мог возникать, если для несуществующих столбцов были определены параметры. Если у таблицы Oracle было меньше столбцов, чем у таблицы Postgres Pro, и для одного из таких дополнительных столбцов был определён параметр, oracle_fdw при записи данных выходил за границы массива, что приводило к повреждению памяти и сбоям. Теперь параметры для таких столбцов игнорируются.
Обновлено расширение pg_proaudit. Включены следующие исправления и усовершенствования:
Добавлены новые типы объектов:
CATALOG RELATION
иCATALOG FUNCTION
.Добавлены новые поля событий: UUID, XID и VXID. Теперь можно определить событие по его UUID и идентификатору транзакции (если применимо).
Исправлено поведение параметра конфигурации
pg_proaudit.log_catalog_access
, теперь оно отражает новую логику регистрации событий для объектов системного каталога.Исправлена логика обработки событий отключения от баз данных. Теперь такие события связаны с соответствующими событиями аутентификации, что позволяет регистрировать события отключения, даже когда соответствующее правило регистрации удаляется после аутентификации, но до непосредственного отключения.
Исправлена проблема, из-за которой тип события
DISCONNECT
не регистрировался для пользователя, который являлся членом роли, заданной в правиле регистрации события.Исправлена ошибка, из-за которой запись журнала делалась не в правильном файле, если была настроена ротация файлов журнала.
Исправлена проблема, из-за которой pg_proaudit не регистрировал события создания схем.
Исправлено поведение процесса
logger
при удалении роли из параллельного сеанса, настроенного в правиле регистрации событий.
Приложение pg_probackup обновлено до версии 2.8.9 Enterprise, в которой добавлена новая функциональность, улучшена производительность и исправлены некоторые ошибки:
Добавлена команда
maintain
, предназначенная для устранения проблем, которые могут возникать при принудительном завершении резервного копирования.Добавлен параметр
--lock-lifetime
, который позволяет задавать тайм-аут для блокировок и может быть полезен для вычислительных сред с низкой скоростью соединения.Стабилизировано сохранение первоначальных прав доступа к каталогам при запуске команды
init
.Стабилизирована работа команды
checkdb
на удалённом сервере.Повышена стабильность восстановления с валидацией на момент времени (PITR).
Исправлена ошибка «SignatureDoesNotMatch» (несовпадение сигнатуры), которая могла возникать во время соединения с S3-хранилищем VK Cloud.
Исправлено некорректное поведение, которое могло наблюдаться при запуске ожидания потока передачи WAL в режиме доставки ARCHIVE.
Модуль pgpro_pwr обновлён до версии 4.9, в которой в основном улучшена производительность и исправлены некоторые ошибки. Основные изменения перечислены ниже:
Добавлена поддержка pgpro_stats 1.9.
Добавлена возможность определять режим сбора информации о размере отношений глобально при помощи параметра конфигурации
pgpro_pwr.relsize_collect_mode
расширения или для сервера при помощи функцииset_server_size_sampling
.Добавлена возможность тонкой настройки сбора статистики сервера, которая включается вызовом функции
set_server_setting
. Она позволяет определять статистику для сбора.Добавлена возможность предварительного просмотра параметров хранения таблиц и индексов в разделе отчёта «Schema object statistics» (Статистика по объектам схемы).
Расширение pgpro_scheduler обновлено до версии 2.11.2. В ней исправлена проблема, из-за которой могли дополнительно запускаться повторяющиеся задачи, если дни недели задавались в формате
crontab
. Теперь расширение проверяет все временные параметры задач и запускает их в указанное время.Расширение pgpro_stats обновлено до версии 1.9, в которую включены следующие усовершенствования и исправления:
Улучшена трассировка сеансов, которая теперь предоставляет больше информации. В частности, новый атрибут фильтра
time_info
управляет включением дополнительной информации в вывод трассировки сеансов, а новый параметр конфигурацииpgpro_stats.trace_query_text_size
позволяет ограничивать размер запроса в таком выводе.Имена атрибутов фильтра
explain_*
трассировщика сеансов приведены в соответствие с именами параметров конфигурации трассировки сеансов.Изменён формат файла выгрузки статистики и соответствующие процедуры сохранения/загрузки.
Реализовано отключение функциональности трассировки сеансов, если не указаны соответствующие фильтры.
Запрещено одновременно указывать pgpro_stats и pg_stat_statements в
shared_preload_libraries
. Если они указаны вместе, сервер баз данных не запустится.
Обновлено расширение pg_wait_sampling. Включены следующие исправления:
Исправлена проблема, из-за которой переменные GUC могли перезаписываться при использовании параллельных рабочих процессов.
Исправлена проблема с некорректными показаниями, которая могла возникать из-за условий гонки при выключенном параметре конфигурации
pg_wait_sampling.sample_cpu
.
E.1.2. Миграция на версию 13.21.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.