E.2. Postgres Pro Enterprise 15.13.1
Дата выпуска: 2025-06-04
E.2.1. Обзор
Этот выпуск основан на PostgreSQL 15.13 и Postgres Pro Enterprise 15.12.1. Все изменения, унаследованные от PostgreSQL 15.13, описаны в Замечаниях к выпуску PostgreSQL 15.13. По сравнению с Postgres Pro Enterprise 15.12.1 эта версия также содержит следующие изменения:
- Добавлен параметр конфигурации enable_alternative_sorting_cost_model, который позволяет включать или отключать использование планировщиком альтернативной модели подсчёта стоимости сортировки кортежей. 
- Добавлен параметр конфигурации enable_any_to_lateral_transformation, который позволяет включать или отключать преобразование подзапросов - ANYв соединения с ключевым словом- LATERAL.
- Оптимизирована производительность при работе с метаданными таблиц за счёт получения информации об атрибутах с использованием системного кеша вместо чтения напрямую из системного каталога. 
- Добавлены следующие изменения в реализацию crash_info: - Добавлена обработка сигналов - SIGILLв процесс обработки- crash_info.
- В выходные файлы - crash_infoдобавлены новые сведения: время запуска процесса и текст запроса при планировании.
- Исправлены некорректные имена функций в первых 2-3 строках трассировки стека - crash_info.
- Исправлено возможное усечение данных в конце файлов выгрузки SQL-запросов. Ранее переполнение буфера при выгрузке SQL-запроса могло приводить к тому, что записывались не все данные, в результате чего в конце файлов, создаваемых - crash_info, могли содержаться усечённые данные.
- Исправлена обработка сигналов о сбоях (отправленных командой kill) обслуживающими процессами. Ранее с первым сигналом информация - crash_infoотправлялась в журнал, но процесс продолжал работу без создания дампа памяти, даже если он был настроен. И только со вторым сигналом обслуживающий процесс завершался и создавался дамп памяти так, как ожидалось.
 
- Ограничены действия, которые суперпользователи могут совершать с временными отношениями из других сеансов. Теперь с такими отношениями можно выполнять только команду - DROP TABLE. Если для параметра конфигурации skip_temp_rel_lock установлено значение- on, их запрещено даже удалять. Эта функциональность полезна для 1C.
- Исправлены следующие проблемы для 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 в виде отдельного пакета. Оно предназначено для автоматического создания и синхронизации слотов логической репликации на физических репликах. 
- Добавлено решение pg_probackup3 для резервного копирования и восстановления кластеров баз данных Postgres Pro. За подробной информацией обратитесь к Замечаниям к выпускам pg_probackup3. 
- Добавлен модуль pgpro_bindump для управления операциями резервного копирования и восстановления. В модуле реализованы специализированные команды репликации для расширенного протокола репликации и собственный формат архивирования. Модуль не требует подключения по SSH. Новый модуль разработан специально для использования вместе с утилитой pg_probackup3. 
- Добавлена утилита pgpro_datactl для управления файлами данных Postgres Pro, которая включает в себя модуль распаковки и анализа файлов CFS. 
- Добавлена утилита pgpro_tune, которая позволяет устанавливать параметры конфигурации Postgres Pro автоматически. 
- В 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 при записи данных выходил за границы массива, что приводило к повреждению памяти и сбоям. Теперь параметры для таких столбцов игнорируются. 
 
- Исправлена проблема с обновлением модуля pageinspect. В редких случаях попытка обновления модуля командой - ALTER EXTENSION pageinspect UPDATE TOпосле обновления кластера баз данных могла завершаться ошибкой. Это зависело от последовательности предыдущих обновлений. Чтобы избежать подобных проблем в будущем, настоятельно рекомендуется после обновления кластера БД удалить расширение командой- DROP EXTENSION, а затем повторно создать его командой- CREATE EXTENSION. Этот подход считается безопасным, поскольку pageinspect не создаёт зависимых объектов.
- Обновлено расширение 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_multiplan обновлено до версии 1.2, в которую включены следующие исправления и усовершенствования: - Реализована возможность создавать резервные копии замороженных планов и затем восстанавливать эти планы в текущую базу данных при помощи функции - pgpro_multiplan_restore(). Теперь замороженные планы можно перемещать между базами данных или даже экземплярами сервера.
- Исправлена ошибка уровня - PANICв pgpro_multiplan, которая могла возникать, если на резервном сервере была установлена версия pgpro_multiplan, отличающаяся от версии расширения на ведущем сервере.
- Исправлена проблема, которая могла приводить к ошибкам вида «unrecognized node type» (нераспознанный тип узла) при работе с хранимыми процедурами и функциями. 
- Исправлено генерирование пустой строки указания в pgpro_multiplan, что вызывало ошибку синтаксиса pg_hint_plan. 
 
- Модуль 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.
 
- Исправлена ошибка, из-за которой sr_plan не регистрировал запросы с записью - INTERVAL 'const'.
E.2.2. Миграция на версию 15.13.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.
Начиная с Postgres Pro Enterprise 15.5.1, права ролей с атрибутом CREATEROLE ограничены, и для изменения свойств других ролей требуется наличие права ADMIN OPTION.
Настоятельно не рекомендуется обновлять кластер с 32-битными идентификаторами транзакций на версии Postgres Pro Enterprise ниже 15.4.2 при наличии мультитранзакций в базе данных, поскольку это может вызвать повреждение данных.
При обновлении до версии Postgres Pro Enterprise 15.3.1 и выше обязательно обновите pg_probackup Enterprise до версии 2.6.4 или выше, поскольку более ранние версии pg_probackup несовместимы с этими версиями Postgres Pro Enterprise.
Для перехода с PostgreSQL, а также с выпуска Postgres Pro Standard или Postgres Pro Enterprise, базирующегося на предыдущей основной версии PostgreSQL, обратитесь к инструкциям по миграции на версию 15.