E.1. Postgres Pro Enterprise 14.13.1

Дата выпуска: 2024-09-06

E.1.1. Обзор

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

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

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

  • Предотвращены потенциальные задержки аутентификации из-за блокировок, вызванных тем, что данные о времени последнего входа роли не обновлялись, если для параметра USER_INACTIVE_TIME профиля этой роли было установлено значение UNLIMITED (за подробностями обратитесь к Разделу 53.39).

  • Оптимизирована логика очистки страниц. Теперь очистка запускается, когда страница почти заполнена, а не только в зависимости от фактора заполнения. Благодаря этому очистка во время операций UPDATE запускается реже и, следовательно, повышается производительность в часто обновляемых таблицах.

  • Решены следующие проблемы в CFS:

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

    • Решена проблема в CFS, которая могла приводить к сбою рабочего процесса сборки мусора с выводом предупреждения «CFS GC failed to read block 0 of file X at position 0 size 0: Success» (CFS GC не удалось прочитать блок 0 файла X в позиции 0, размер 0: Успех). Проблема возникала из-за некорректной обработки первого МБ файла данных, содержащего только нулевые страницы.

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

  • Устранена проблема с замораживанием 64-битных идентификаторов мультитранзакций, которая могла проявляться в ошибках уровня PANIC, таких как «xid XXX does not fit into valid range for base YYY» (xid XXX не попадает в допустимый диапазон для базы YYY) во время автоочистки.

  • Устранена ошибка, связанная с неоптимальной обработкой pd_prune_xid. Она не приводила к каким-либо существенным проблемам в работе, но вызывала ненужную очистку страниц, которая могла приводить к появлению дополнительных записей WAL.

  • Устранена проблема, которая могла проявляться в ошибках вида «invalid FSM request size» (недопустимый размер запроса FSM). Код был скорректирован с учётом изменений в структуре страниц кучи, что исключило зависимость от константы, связанной с максимальным свободным пространством на странице кучи, в случаях, где это не применимо.

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

  • Устранена ошибка в ANALYZE, которая могла возникать из-за невозможности отобразить системный каталог pg_statistic. Если в базе данных есть индексы со столбцами INCLUDE, после обновления Postgres Pro рекомендуется ещё раз выполнить ANALYZE для этих столбцов, чтобы это исправление применилось.

  • Добавлена поддержка ОС Альт 11.

  • Обновлено расширение mchar для устранения ошибки, из-за которой игнорировались управляющие символы при сравнении строк типов данных mchar и mvarchar.

  • Реализована возможность замедлять выполнение транзакций на узле-доноре в расширении multimaster с помощью параметра конфигурации multimaster.tx_delay_on_slow_catchup . Это полезно, когда отстающий узел навёрстывает состояние узла-донора и не может быстро применять изменения.

  • Расширение pg_filedump обновлено до версии 17.0, в которой были исправлены некоторые ошибки и появились новые возможности. В частности, содержимое метастраниц для индексов GIN и SP-GiST теперь отображается корректно, а также устранена проблема нехватки памяти для кодирования и распаковки.

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

    • Улучшена производительность и добавлен параметр pg_proaudit.max_rules_count, позволяющий указать максимально допустимое количество правил.

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

  • Приложение pg_probackup обновлено до версии 2.8.3 Enterprise, в которую были включены следующие исправления:

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

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

  • Исправлено некорректное поведение pg_wait_sampling при использовании с расширенным протоколом запросов.

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

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

Важно

При обновлении отказоустойчивого кластера с 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.