E.3. Postgres Pro Enterprise 13.16.1

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

E.3.1. Обзор

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

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

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

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

  • Решены следующие проблемы в 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.3.2. Миграция на версию 13.16.1

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

Важно

При обновлении отказоустойчивого кластера с Postgres Pro Enterprise версии 13.15.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 13.13.1, права ролей с атрибутом CREATEROLE ограничены, и для изменения свойств других ролей требуется наличие права ADMIN OPTION.

Настоятельно не рекомендуется обновлять кластер с 32-битными идентификаторами транзакций на версии Postgres Pro Enterprise ниже 13.12.2 при наличии мультитранзакций в базе данных, поскольку это может вызвать повреждение данных.

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

Если вы ранее мигрировали на Postgres Pro Enterprise версии 13.3.1 или ниже, обязательно перестройте индексы GIN, выполнив команду REINDEX.

Если вы используете PTRACK в процедуре резервного копирования, реализуемой c помощью утилиты pg_probackup, и обновляетесь с Postgres Pro Enterprise версии 13.2.2 или ниже, сделайте полную резервную копию базы данных после обновления.

Если в вашей инсталляции Postgres Pro Enterprise 13.2.1 имеются сжатые табличные пространства, созданные без явного выбора алгоритма pglz, произведите обновление следующим образом. До обновления выгрузите полный дамп, используя pg_dumpall. Обновите Postgres Pro Enterprise, пересоздайте кластер баз данных и восстановите все данные из дампа. Затем вы можете создать табличные пространства CFS по прежней схеме.

Если вы уже обновили инсталляцию Postgres Pro Enterprise 13.2.1 с табличными пространствами CFS и потеряли доступ к сжатым данным, обратитесь к службе поддержки.

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