E.1. Postgres Pro Enterprise 17.4.1 #
Дата выпуска: 2025-03-13
E.1.1. Обзор #
Этот выпуск основан на PostgreSQL 17.4 и Postgres Pro Enterprise 17.2.2. Все изменения, унаследованные от PostgreSQL 17.4, описаны в Замечаниях к выпуску PostgreSQL 17.4. По сравнению с Postgres Pro Enterprise 17.2.2 эта версия также содержит следующие изменения:
В выходные файлы
crash_info
добавлены новые сведения, например текущий рабочий каталог, каталогPGDATA
и т. д.Добавлены повышенные требования безопасности для команды CREATE PROFILE. Теперь при использовании параметра
PASSWORD_REQUIRE_COMPLEX
пароли должны содержать символы из трёх разных групп. Также все буквы или их аналоги в языках без разделения на регистры (хинди, китайский и т.п.) в кодировке UTF-8 считаются строчными буквами.Добавлен параметр конфигурации skip_temp_rel_lock, который позволяет пропускать блокировку для временных отношений.
Реализованы следующие исправления и усовершенствования для CFS:
Изменено значение по умолчанию для параметра конфигурации cfs_gc_threshold с 50 до 30 процентов.
Исправлена проблема с блокировкой сборщика мусора CFS процессом резервного копирования. Если резервное копирование выполнялось слишком долго, оно могло привести к блокировкам, мешающим записи в сжатые табличные пространства. Теперь оба процесса блокируют только определённые файлы данных на короткое время, избегая взаимоблокировок.
Устранена проблема с отсутствующими настройками сжатия для табличных пространств на резервных серверах путём добавления нового типа записи WAL. Ранее резервные серверы не получали такие настройки сжатия, поскольку команда
ALTER TABLESPACE ... SET (compression=true)
не регистрировалась в WAL.Исправлено поведение функции
cfs_start_gc
, чтобы недопустимые значения аргументаn_workers
отклонялись.Устранена ошибка, из-за которой процесс запуска сборки мусора CFS мог не запуститься и не запустить рабочие процессы сборки мусора на резервных серверах.
Исправлена проблема, возникавшая при обновлении Postgres Pro Standard до Postgres Pro Enterprise с использованием pg_upgrade, которое могло завершиться ошибкой вида «could not open file» (не удалось открыть файл), если в старом кластере эпоха была больше 1.
Устранена проблема с обработкой файлов
*.cfm.bck
с помощью pg_upgrade.Исправлено поведение параметра pg_upgrade
--check
для корректной проверки того, что pg_upgrade запущен на резервном сервере. Ранее она завершалась ошибками вида «cannot assign TransactionIds during recovery» (не удалось назначить идентификаторы транзакций во время восстановления).Устранена ошибка сегментации, вызванная аннулированием обёртки сторонних данных во время автономных транзакций, если автономная транзакция сбрасывала глобальные переменные, в то время как зарегистрированные функции-обработчики оставались активными. Теперь функции-обработчики проверяют наличие глобальных переменных, а данные об аннулировании сохраняются для родительских транзакций.
Устранена проблема, из-за которой сервер аварийно завершал работу ошибкой уровня PANIC вместо возврата соответствующей ошибки при удалении кортежей со страницы, где разница между минимальным идентификатором транзакции и текущим идентификатором транзакции превышала 2^31.
Устранено раздувание
pg_multixact
путём введения «нестрогих» ограничений, запускающих автоочистку раньше.Устранена проблема, из-за которой при включённом параметре
crash_info
могли не записываться диагностические файлы во время обработки переполнения стека. Ранее обработчик сигналов запускался на стеке с переполнением, что могло помешать его запуску из-за нехватки памяти. Теперь обработчик использует альтернативный стек.Устранена проблема, из-за которой роли без явно заданного атрибута
VALID UNTIL
и связанные с профилем, у которого для PASSWORD_GRACE_TIME установлено значение 0, а дляPASSWORD_LIFE_TIME
—UNLIMITED
, некорректно получали предупреждения об истечении срока действия пароля. Теперь пароли корректно считаются действительными бесконечно.Устранена ошибка, которая вызывала проблемы с запуском последователей, добавленных после выполнения
ALTER SYSTEM
на инициализированном лидере.Расширение apache_age обновлено до версии 1.5.1.
Обновлено решение BiHA — включены следующие возможности, усовершенствования и исправления:
Реализована возможность уменьшения параметра конфигурации max_connections в BiHA-кластере без отключения расширения biha. Теперь можно уменьшить значение параметра на узле-лидере и перезапустить его, чтобы изменения вступили в силу. Ранее значение
max_connections
можно было уменьшить только при временном удалении расширения biha изshared_preload_libraries
.Реализован параметр bihactl init
--enable-proxima
, позволяющий включить расширение proxima при создании BiHA-кластера.Устранена ошибка, приводившая к перезагрузке процесса
biha-background-worker
при удалении слота репликации.Устранена ошибка, вызывавшая проблемы с преобразованием кластера в BiHA-кластер при заданной переменной shared_preload_libraries в файле postgresql.auto.conf.
Устранена ошибка, вызывавшая проблемы при преобразовании синхронного кластера в BiHA-кластер. Теперь не требуется сбрасывать параметр
synchronous_standby_names
перед преобразованием синхронного кластера.
Оптимизирован модуль fasttrun для пропуска ненужных операций усечения пустых временных отношений.
Устранена проблема, возникавшая в некоторых особых случаях с обновлением pageinspect до версии 1.10.1 или выше.
Расширение pgpro_multiplan обновлено до версии 1.1, в которую включены следующие исправления:
Устранена проблема с выполнением запроса, если план был одобрен при включённом pgpro_multiplan.auto_capturing, а затем запрос выполнялся с другим планом при выключенном
pgpro_multiplan.auto_capturing
. Проблема могла проявляться в ошибках вида «cache lookup failed for type» (ошибка поиска в кеше для типа).Устранена проблема, из-за которой расширение pgpro_multiplan не могло идентифицировать зарегистрированный запрос с параметром, используемым в нескольких местах этого запроса, что препятствовало замораживанию планов для таких запросов.
Приложение pgbadger обновлено до версии 13.0.
pgbouncer обновлён до версии 1.24.0.
Модуль pg_hint_plan обновлён до версии 1.7.0.3.
Расширение pg_portal_modify обновлено до версии 0.3.5.
Расширение pgpro_anonymizer обновлено до версии 1.3.2.
Обновлено расширение 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 Enterprise, в которой улучшена производительность и исправлены некоторые ошибки:
Уровень записи в журнал сообщений вида «checking WAL file name» (проверка имени файла WAL), выдающихся при выполнении команды
show
с параметром--archive
, понижен сINFO
доVERBOSE
.Изменена логика команды
add-instance
: теперь обязательно использовать параметр-D
, указывающий путь к каталогу. Командаadd-instance
больше не использует переменную средыPGDATA
как расположение каталога, а требует явного указания пути к каталогу в параметре команды.Улучшен механизм сбора мусора в CFS, используемый при создании резервной копии. Блокировки на уровне файловой системы решают проблему с одновременным доступом к файлам из сжатых табличных пространств во время копирования в резервную копию и во время дефрагментации.
Устранена проблема с механизмом многопоточного копирования файлов, предотвращающим многократное копирование одного файла. Ранее из-за этой проблемы могла не создаваться резервная копия при высокой нагрузке на сервер.
Добавлено расширение pgpro_gbtree, позволяющее создавать и использовать глобальные индексы для секционированных таблиц. Глобальный индекс создаётся для одного или нескольких столбцов секционированной таблицы и не включает ключ секционирования. Это позволяет выполнять сканирование индекса без перебора всех секций.
Расширение pgpro_queue обновлено до версии 1.1, где удалён более не требующийся параметр
pgpro_queue.launcher_database
. Теперь при попытке указать этот параметр будет выведено соответствующее предупреждение.Расширение pgpro_scheduler обновлено до версии 2.11.1, в которой устранена ошибки сегментации, которая могла возникнуть, если pgpro_scheduler не завершал свои процессы при удалении связанного расширения или схемы. Теперь работа завершается ошибкой, а не сбоем.
Расширение pgpro_sfile обновлено — добавлена проверка аргумента
a_sf_index
функцииsf_write
, его значение должно быть больше нуля.Обновлено расширение pgpro_stats. Включены следующие усовершенствования и исправления:
Изменён формат файла выгрузки статистики и соответствующие процедуры сохранения/загрузки.
Имена атрибутов фильтра
explain_*
трассировщика сеансов приведены в соответствие с именами параметров конфигурации трассировки сеансов.Реализовано отключение функциональности трассировки сеансов, если не указаны соответствующие фильтры.
Устранена проблема с записью более ранних временных меток расширением pgpro_usage. Ранее время последнего использования права регистрировалось на основе времени начала транзакции, что могло привести к перемещению временной метки назад, если длительная транзакция обращалась к таблице с опозданием, в то время как более короткая параллельная транзакция обращалась к ней раньше.
Обновлено расширение proxima. Включены следующие возможности, усовершенствования и исправления:
Реализованы параметры конфигурации proxima.p2p_ssl_enabled, proxima.p2p_auth_methods и proxima.ssl_trusted_certs_dir для управления SSL-взаимодействием и аутентификацией между узлами кластера.
Расширен список SQL-функций, позволяющих расширению proxima автоматически устанавливать динамический выделенный сеанс, если эти функции присутствуют в запросе. Новые функции:
set_config()
иsetseed()
.Отключён запуск proxima на узле-рефери BiHA-кластера, так как это могло вызвать проблемы с авторизацией.
Устранена ошибка, из-за которой идентификаторы узлов BiHA не отображались в процессе proxima.
Устранена ошибка, из-за которой расширение proxima не учитывало значения
listen_addresses
Postgres Pro при запуске локальных обслуживающих процессов.
Обновлён модуль rum: изменено сообщение об ошибках, возникающих в случаях, когда в запросе
SELECT
используетсяORDER BY
.
E.1.2. Миграция на версию 17.4.1 #
Если вы производите обновление выпуска Postgres Pro Enterprise, базирующегося на той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.
Важно
Чтобы обновить BiHA-кластер с Postgres Pro Enterprise версии 17.2 до Postgres Pro Enterprise версии 17.4, см. раздел Миграция BiHA-кластера в состоянии LEADER_RW.
Для перехода с PostgreSQL, а также с выпуска Postgres Pro Standard или Postgres Pro Enterprise, базирующегося на предыдущей основной версии PostgreSQL, обратитесь к инструкциям по миграции на версию 17.