E.1. Postgres Pro Enterprise 14.20.1

Дата выпуска: 2025-12-16

E.1.1. Обзор

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

  • Улучшен механизм поиска схожих строк типов mchar и mvarchar с использованием оператора LIKE. Оптимизированное сравнение без учёта регистра значительно ускоряет поиск. Может быть полезно для 1C.

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

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

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

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

  • Ограничено максимальное количество присваиваемых идентификаторов транзакций, теперь оно равняется 263. Кроме того, при достижении порогового значения в 10 миллионов XID теперь выводится предупреждение. При достижении максимального количества XID новые транзакции перестают запускаться, но запросы только на чтение продолжают выполняться.

  • Предотвращён возможный сбой из-за вызова pfree для нулевого указателя в случае ошибки при установлении соединения OpenSSL.

  • Устранена проблема CFS со сжатием файлов отношений, в которых OID превышал значение INT32_MAX. Проблема возникала при переносе таблиц в табличное пространство CFS.

  • Добавлены новые значения переменной окружения PGPRO_TUNE, используемой initdb.

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

  • Добавлено расширение pg_trgm_mchar, которое обеспечивает быстрый поиск cхожих строк типов mchar и mvarchar на основе триграмм. Это расширение также обеспечивает поддержку индексов GIN для типов mchar и mvarchar. Может быть полезно для 1C.

  • Добавлено расширение pgpro_cpumeter, которое предоставляет доступ к новой системной функции мониторинга использования процессора. Функция pgpro_cpumeter непрерывно собирает и записывает информацию о ядрах процессора, используемых процессами сервера Postgres Pro.

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

    • Устранена проблема, из-за которой multimaster возвращал ошибку при выполнении транзакций на чтение и запись, содержавших запросы к сторонним таблицам postgres_fdw. Основная причина ошибки была в том, что postgres_fdw не поддерживает транзакции с двухфазной фиксацией, которые использует multimaster. Для решения проблемы был реализован параметр конфигурации postgres_fdw.read_only_transactions. Если параметр имеет значение on, включается возможность выполнять запросы на чтение к сторонним таблицам в транзакциях на чтение и запись, что обеспечивает стабильную работу multimaster и postgres_fdw.

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

  • Модуль orafce обновлён до версии 4.16.3.

  • Обновлён модуль pageinspect. В новой версии исправлена ошибка функции page_header, которая выводила некорректную информацию для страниц double xmax и некоторых страниц индексов. В частности, была перепутана последовательность столбцов и значение prune_xid выводилось в столбце xid_base. Теперь информация выводится корректно.

  • Утилита pg_filedump обновлена до версии 18.0.

  • Расширение pg_hint_plan обновлено до версии 1.4.4.

  • Расширение pg_portal_modify обновлено до версии 0.3.6.

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

    • Добавлена поддержка регистрации следующих типов событий: ANALYZE, DISCARD ALL, DISCARD PLANS, DISCARD SEQUENCES, DISCARD TEMP (для временных таблиц), CHECKPOINT, FETCH и MOVE.

    • Добавлен новый класс событий MISC. Этот класс позволяет регистрировать все события (включая перечисленные выше), не относящиеся к другим классам.

    • Добавлен новый метод регистрации событий безопасности. Теперь события безопасности в формате CEF можно не только записывать в отдельный файл, но и передавать в syslog.

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

    • Исправлена проблема, из-за которой pg_proaudit не регистрировал события безопасности в файл CEF.

    • Исправлена проблема, из-за которой расширение pg_proaudit не регистрировало события для команды INSERT после CREATE в анонимных блоках кода (команда DO) и хранимых процедурах/функциях.

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

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

    • Обеспечена поддержка Postgres Pro Enterprise 18.

    • Обеспечена поддержка прозрачного защитного преобразования данных (TDE). Теперь в выводе версии pg_probackup отображается отметка о поддержке TDE.

    • Добавлено сохранение хоста, с которого была выполнена резервная копия, в backup.control и его отображение в выводе команды show.

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

    • Для операций archive-push и archive-get в удалённом режиме добавлено игнорирование сигналов SIGQUIT для предотвращения дампа памяти вспомогательных программ при остановке сервера.

    • Добавлена проверка соответствия номера порта в PGDATA и в параметре --pgport. Также добавлен флаг --force, чтобы выполнять резервное копирование, даже если эти значения не совпадают.

    • Исправлена обработка внешних табличных пространств при инкрементальном восстановлении. При использовании флага --force их содержимое больше не перезаписывается.

    • Исправлена проблема удержания слота репликации командой backup после успешного завершения.

    • Исправлен конфликт идентификаторов для параметра --wal-tree путём добавления проверки уникальности.

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

  • Модуль pg_repack обновлён до версии 1.5.3.

  • Обновлён плагин pgpro_bindump. В новой версии исправлена проверка уровня сжатия. Ранее применялся одинаковый диапазон уровней сжатия независимо от выбранного алгоритма.

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

  • Утилита pgpro_datactl обновлена до версии 1.2.

  • Модуль pgpro_pwr обновлён до версии 4.12, в которой улучшена производительность и исправлены некоторые ошибки. Основные изменения перечислены ниже:

    • Улучшено отслеживание времени функцией take_sample.

    • Добавлена поддержка pgpro_stats 1.10.

    • Добавлена возможность исключать из дампов строки подключения к серверу.

    • В отчёты добавлена доступная статистика по точкам перезапуска.

  • Устранена проблема в pgpro_scheduler, при которой в служебную таблицу, связанную с функцией get_log(), некорректно записывались значения временной метки. Теперь значения NULL корректно записываются как отсутствие данных.

  • Приложение pgpro_stats обновлено до версии 1.10, в которой были исправлены некоторые ошибки и появились новые возможности:

    • В представления pgpro_stats_statements и pgpro_stats_totals включены новые поля, добавленные в pg_stats_statements в Postgres Pro 18. Также были обновлены соответствующие функции.

    • Добавлена функция pgpro_stats_statements_filtered, которая фильтрует статистику, аналогичную доступной в представлении pgpro_stats_statements, по одному или нескольким полям: userid, dbid, queryid и planid. Вызов этой функции работает быстрее, чем запрос к представлению pgpro_stats_statements с указанием соответствующих значений этих полей.

    • Улучшено поведение pgpro_stats аналогично pg_stat_statements. Включены следующие изменения:

      • Добавлена возможность параметризации значений SET. Это позволяет сократить раздувание, которое возникает из-за операторов SET с разными константами.

      • Добавлена возможность параметризации списков констант.

    • Устранена проблема, которая могла возникать, когда в pgpro_stats дополнительные метрики изменялись «на лету». Теперь при каждом изменении дополнительных метрик требуется перезапуск сервера.

  • Расширение pldebugger обновлено до версии 1.1.6.

  • Обновлён модуль rum. Исправлена ошибка обновления модуля, которая возникала из-за того, что в его сборочном файле была указана некорректная переменная.

  • Расширение tds_fdw обновлено до версии 2.0.5.

  • Отключён online_analyze. Не рекомендуется использовать этот модуль с современными версиями . Однако при необходимости его можно включить.

E.1.2. Миграция на версию 14.20.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.