E.1. Postgres Pro Standard 14.17.1

Дата выпуска: 2025-02-27

E.1.1. Обзор

Этот выпуск основан на PostgreSQL 14.17 и Postgres Pro Standard 14.15.1. Все усовершенствования, унаследованные от PostgreSQL 14.17, перечислены в Замечаниях к выпуску PostgreSQL 14.17. Другие важные изменения и улучшения перечислены ниже:

  • В выходные файлы crash_info добавлены новые сведения, например текущий рабочий каталог, каталог PGDATA и т. д.

  • Добавлены повышенные требования безопасности для команды CREATE PROFILE. Теперь при использовании параметра PASSWORD_REQUIRE_COMPLEX пароли должны содержать символы из трёх разных групп. Также неалфавитные символы (языка хинди, китайские иероглифы и т. д.) теперь считаются строчными.

  • Устранена проблема, из-за которой при включённом параметре crash_info могли не записываться диагностические файлы во время обработки переполнения стека. Ранее обработчик сигналов запускался на стеке с переполнением, что могло помешать его запуску из-за нехватки памяти. Теперь обработчик использует альтернативный стек.

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

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

  • Устранена проблема, из-за которой роли без явно заданного атрибута VALID UNTIL и связанные с профилем, у которого для PASSWORD_GRACE_TIME установлено значение 0, а для PASSWORD_LIFE_TIMEUNLIMITED, некорректно получали предупреждения об истечении срока действия пароля. Теперь пароли корректно считаются действительными бесконечно.

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

  • Приложение mamonsu обновлено до версии 3.5.11, в которую включена поддержка pgpro_stats версии 1.8.

  • Приложение pgbadger обновлено до версии 13.0.

  • pgbouncer обновлён до версии 1.24.0.

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

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

    • Добавлено новое поле событий: имя пользователя сеанса. Теперь события содержат информацию об атрибутах session_user и current_user SQL-сеанса.

    • Добавлена поддержка новых классов событий: ALL_DDL_NONTEMP и ALL_DML_NONTEMP. Область действия этих классов ограничена объектами, не находящимися во временных схемах pg_temp_nnn.

    • Исправлено внесение в журнал событий SELECT FOR UPDATE и SELECT FOR KEY SHARE: теперь они корректно указываются как команды SELECT, а не UPDATE.

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

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

    • Уровень записи в журнал сообщений вида «checking WAL file name» (проверка имени файла WAL), выдающихся при выполнении команды show с параметром --archive, понижен с INFO до VERBOSE.

    • Изменена логика команды add-instance: теперь обязательно использовать параметр -D, указывающий путь к каталогу. Команда add-instance больше не использует переменную среды PGDATA как расположение каталога, а требует явного указания пути к каталогу в параметре команды.

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

    • Добавлено отслеживание версий расширений, установленных в кластере, в новом разделе отчёта.

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

  • Расширение pgpro_stats обновлено до версии 1.8.1, в которую включены следующие усовершенствования и исправления:

    • Устранена проблема, которая могла возникнуть во время трассировки сеанса и вызвать ошибки «could not write file ""pg_stat/pgpro_stats_filters.trace.tmp"": No such file or directory» (не удалось записать файл ""pg_stat/pgpro_stats_filters.trace.tmp"": Такого файла или каталога не существует). Параллельная запись из разных сеансов в файл трассировки теперь работает корректно, и процессы могут выполнять запись в файл трассировки параллельно без конфликтов.

    • Изменён формат файла выгрузки статистики и соответствующие процедуры сохранения/загрузки.

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

    • Имена атрибутов фильтра explain_* трассировщика сеансов приведены в соответствие с именами параметров конфигурации трассировки сеансов.

    • Реализовано отключение функциональности трассировки сеансов, если не указаны соответствующие фильтры.

  • Обновлён модуль pg_variables. Команда DISCARD ALL теперь очищает все пакеты и переменные в pg_variables.

  • Обновлён модуль rum: изменено сообщение об ошибках, возникающих в случаях, когда в запросе SELECT используется ORDER BY.

E.1.2. Миграция на версию 14.17.1

Если вы производите обновление выпуска Postgres Pro Standard, базирующегося на той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.

Версия ABI может измениться в корректирующем выпуске Postgres Pro. В таком случае при попытке запустить расширение возникает ошибка ABI mismatch (Несоответствие ABI), поэтому обязательно установите новую версию расширения, поставляемую с новым выпуском Postgres Pro, или перекомпилируйте стороннее расширение, чтобы использовать его с текущей версией Postgres Pro.

Если вы создаёте резервные копии с помощью pg_probackup и ранее обновили его до версии 2.8.0 или 2.8.1, обязательно обновите его до версии 2.8.2 или выше и сделайте полную резервную копию базы данных после обновления, поскольку резервные копии, созданные с использованием этих версий, могут быть повреждены. Чтобы проверить, повреждены ли резервные копии, созданные с помощью версий 2.8.0 или 2.8.1, можно использовать версию 2.8.2.

Начиная с Postgres Pro Standard 14.10.1, права ролей с атрибутом CREATEROLE ограничены, и для изменения свойств других ролей требуется наличие права ADMIN OPTION.

При обновлении до версии Postgres Pro 14.8.1 и выше обязательно обновите pg_probackup до версии 2.6.3 или выше, поскольку более ранние версии pg_probackup несовместимы с этими версиями Postgres Pro.

Для перехода с PostgreSQL или выпуска Postgres Pro Standard, базирующегося на предыдущей основной версии PostgreSQL, обратитесь к инструкциям в Замечаниях к выпуску Postgres Pro Standard 14.1.1.