E.7. Postgres Pro Enterprise 13.16.1
Дата выпуска: 2024-09-05
E.7.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. Это полезно, когда отстающий узел навёрстывает состояние узла-донора и не может быстро применять изменения.Добавлена поддержка
COPYв модуль online_analyze.Расширение 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.7.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.
E.7. Postgres Pro Enterprise 13.16.1
Release Date: 2024-09-05
E.7.1. Overview
This release is based on PostgreSQL 13.16 and Postgres Pro Enterprise 13.15.2. All changes inherited from PostgreSQL 13.16 are listed in PostgreSQL 13.16 Release Notes. As compared with Postgres Pro Enterprise 13.15.2, this version also provides the following changes:
Enhanced performance of segment search by implementing a new search strategy, allowing faster detection of the last segment.
Implemented the interaction of the PASSWORD_GRACE_TIME profile parameter with the
VALID UNTILrole attribute. Now if both of them are set, the warning about password expiration will be displayed.Prevented potential authentication delays due to locking by not updating role's last login time if the role's profile
USER_INACTIVE_TIMEis set to unlimited (see Section 54.39 for details).Fixed the following issues in CFS:
Fixed issues related to processing of data structures in CFS by pg_rewind. Previously, pg_rewind did not fully support CFS, which could result in data corruption.
Fixed an issue in CFS, which could cause GC worker to fail with warning “CFS GC failed to read block 0 of file X at position 0 size 0: Success”. It happened due to incorrect handling of the first MB of the data file containing only zero pages.
Fixed a segmentation fault that could occur when a connection to the built-in connection pooler was reset before a new session was created in the backend.
Fixed an issue with freezing 64-bit multitransaction IDs, which could manifest itself in PANIC-level errors like “xid XXX does not fit into valid range for base YYY” during autovacuum.
Fixed an issue related to suboptimal handling of
pd_prune_xid. This issue did not result in any significant operation problems but caused unnecessary page pruning, which might have produced extra WAL records.Fixed an issue, which could manifest itself in errors like “invalid FSM request size”. The code was adjusted to reflect the changes in heap page structure, removing reliance on a constant related to maximum free heap page space where it is no longer applicable.
Fixed a bug that caused the optimizer to ignore columns from query conditions. Previously, when partially using a composite index, the number of rows could be overestimated, which led to an incorrect plan creation. The bug occurred due to a malfunction of the multi-column statistics elements.
Fixed a bug in
ANALYZEthat could occur because it was impossible to display thepg_statisticsystem catalog. For the fix to work, if your database has indexes withINCLUDEcolumns, after upgrading Postgres Pro, it is recommended to do anotherANALYZEfor these columns.Added support for ALT 11.
Upgraded the mchar extension to fix a bug that caused the
mcharandmvarchardata types to ignore control characters during string comparison.Implemented the ability to slow down transaction execution on the donor node in multimaster using the
multimaster.tx_delay_on_slow_catchupconfiguration parameter. This is useful when a lagging node is catching up to the donor node and cannot apply changes as quickly.Added support for
COPYto the online_analyze module.Upgraded pg_filedump to version 17.0, which provides optimizations and bug fixes. In particular, contents of meta pages for GIN and SP-GiST indexes are now displayed correctly, and an issue of lacking memory for encoding and decompression is resolved.
Upgraded pg_proaudit to provide the following optimizations and bug fixes:
Improved performance and added the
pg_proaudit.max_rules_countparameter, which allows specifying the maximum number of rules allowed.Corrected support of database names including uppercase symbols by the
pg_proaudit_set_rulefunction.
Upgraded pg_probackup to version 2.8.3 Enterprise, which provides the following bug fixes:
Fixed backup validation for databases containing an OID larger than 10^9. Previously, the validation status could be displayed incorrectly in such cases.
Fixed a bug that could occur when pg_probackup was run as a user included in the
postgresgroup in case the database used CFS.
Fixed incorrect behavior of pg_wait_sampling when used with the extended query protocol.
E.7.2. Migration to Version 13.16.1
If you are upgrading from a Postgres Pro Enterprise release based on the same PostgreSQL major version, it is enough to install the new version into your current installation directory.
Important
When upgrading your high-availability cluster from Postgres Pro Enterprise versions 13.15.x or lower, first disable automatic failover if it was enabled and upgrade all the standby servers, then upgrade the primary server, promote a standby, and restart the former primary (possibly with pg_rewind).
If you take backups using pg_probackup and you have previously upgraded it to version 2.8.0 Enterprise or 2.8.1 Enterprise, make sure to upgrade it to version 2.8.2 Enterprise or higher and retake a full backup after upgrade, since backups taken using those versions might be corrupted. If you suspect that your backups taken with versions 2.8.0 or 2.8.1 may be corrupted, you can validate them using version 2.8.2.
If you are migrating to the current major version of Postgres Pro Enterprise using pg_upgrade, and you want to keep the existing visibility map representation in pageinspect, you should run the VACUUM command before the upgrade.
Starting from Postgres Pro Enterprise 13.13.1, the privileges of CREATEROLE are restricted, and modification of other roles requires the role requesting the change to have the ADMIN OPTION permission.
It is strongly recommended to avoid migrating a cluster with 32-bit transaction IDs to Postgres Pro Enterprise versions below 13.12.2, if there are multitransactions in your database, as it may cause data corruption.
When upgrading to Postgres Pro Enterprise versions starting with 13.11.1, make sure to upgrade pg_probackup to version 2.6.4 or higher since lower versions are incompatible with these Postgres Pro Enterprise versions.
If you have previously migrated to Postgres Pro Enterprise 13.3.1 or lower, you must run the REINDEX command to rebuild GIN indexes.
If you are upgrading from Postgres Pro Enterprise versions 13.2.2 or lower and take PTRACK backups using pg_probackup, retake a full backup after upgrade.
If you have an installation of Postgres Pro Enterprise 13.2.1 that contains compressed tablespaces created without explicitly specifying the pglz algorithm, perform an upgrade as follows. Before upgrading, make a complete dump using pg_dumpall. Upgrade Postgres Pro Enterprise, re-create your database cluster, and restore the dump. Then you can create compressed tablespaces in the same way as before.
If you have already upgraded your installation with CFS tablespaces from Postgres Pro Enterprise 13.2.1, and you cannot access the compressed data, call the support team.
To migrate from PostgreSQL, as well as Postgres Pro Standard or Postgres Pro Enterprise based on a previous PostgreSQL major version, see the migration instructions for version 13.