E.3. Postgres Pro Enterprise 12.20.1
Дата выпуска: 2024-09-05
E.3.1. Обзор
Этот выпуск основан на PostgreSQL 12.20 и Postgres Pro Enterprise 12.19.2. Все изменения, унаследованные от PostgreSQL 12.20, описаны в Замечаниях к выпуску PostgreSQL 12.20. По сравнению с Postgres Pro Enterprise 12.19.2 эта версия также содержит следующие изменения:
Увеличена производительность поиска сегментов за счёт внедрения новой стратегии, позволяющей быстрее определять последний сегмент.
Решены следующие проблемы в 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
для этих столбцов, чтобы это исправление применилось.Обновлено расширение mchar для устранения ошибки, из-за которой игнорировались управляющие символы при сравнении строк типов данных
mchar
иmvarchar
.Расширение pg_filedump обновлено до версии 17.0, в которой были исправлены некоторые ошибки и появились новые возможности. В частности, содержимое метастраниц для индексов GIN и SP-GiST теперь отображается корректно, а также устранена проблема нехватки памяти для кодирования и распаковки.
Приложение pg_probackup обновлено до версии 2.8.3 Enterprise, в которую были включены следующие исправления:
Исправлена проверка резервных копий для баз данных, содержащих OID более 10^9. Ранее в таких случаях статус проверки мог отображаться некорректно.
Устранена ошибка, которая могла возникать при запуске pg_probackup от имени пользователя, включённого в группу
postgres
, если в базе данных использовалась CFS.
Исправлено некорректное поведение pg_wait_sampling при использовании с расширенным протоколом запросов.
E.3.2. Миграция на версию 12.20.1
Если вы производите обновление выпуска Postgres Pro Enterprise, базирующегося на той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.
Важно
При обновлении отказоустойчивого кластера с Postgres Pro Enterprise версии 12.19.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
, прежде чем начинать обновление.
Настоятельно не рекомендуется обновлять кластер с 32-битными идентификаторами транзакций на версии Postgres Pro Enterprise ниже 12.16.2 при наличии мультитранзакций в базе данных, поскольку это может вызвать повреждение данных.
Если вы ранее мигрировали на Postgres Pro Enterprise версии 12.7.1 или ниже, обязательно перестройте индексы GIN, выполнив команду REINDEX
.
Если вы ранее мигрировали с Postgres Pro Enterprise версии 11 или 10, обязательно перестройте индексы-B-деревья (за исключением уникальных, покрывающих и системных индексов). Перестроить такие индексы также рекомендуется, если вы мигрируете с указанных версий на текущую.
Если вы используете PTRACK в процедуре резервного копирования, реализуемой c помощью утилиты pg_probackup, и обновляетесь с Postgres Pro Enterprise версии 12.6.x или ниже, сделайте полную резервную копию базы данных после обновления.
Для перехода с PostgreSQL, а также с выпуска Postgres Pro Standard или Postgres Pro Enterprise, базирующегося на предыдущей основной версии PostgreSQL, обратитесь к инструкциям по миграции на версию 12.