E.20. Postgres Pro Enterprise 13.6.1

Дата выпуска: 2022-03-18

E.20.1. Обзор

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

  • Оптимизирован доступ к полю LSN в заголовке страницы за счёт замены блокировок атомарным чтением; реализовано кеширование номера блока, соответствующего странице. В результате благодаря уменьшению времени ожидания блокировок и ускорению получения номеров блоков обеспечивается лучшая производительность при одновременном обращении нескольких клиентов к одним и тем же блокам.

  • Добавлена функция pgpro_stats_wal_sender_crc_errors, возвращающая количество ошибок, обнаруженных процессом-передатчиком WAL.

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

  • Реализована поддержка значений interval для всех параметров, задающих периоды времени (*_TIME) в SQL-командах CREATE PROFILE и ALTER PROFILE.

  • Исправлена ошибка в CFS, приводящая в Windows к незаметному повреждению данных в сжатых табличных пространствах при запуске сервера после восстановления копии или нештатной остановки.

  • Исправлена ошибка в отложенном преобразовании страниц от 32-битных к 64-битным идентификаторам транзакций, производимом в только читающих транзакциях или на репликах. Теперь при таком преобразовании страницы будут помечаться как подлежащие записи WAL в виде полных страниц. Вследствие этой ошибки могли происходить сбои при синхронизации преобразованных страниц с другими репликами.

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

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

  • Исправлена логика VACUUM в части обработки идентификаторов мультитранзакций. Раньше при очистке таблицы могли выдаваться ошибки вида «found multixact XXX from before relminmxid...» (найденный multixact XXX предшествует relminmxid...); содержимое таблицы при этом не было повреждено.

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

  • Исправлены параметры уничтожения процессов при нехватке памяти (OOM) в конфигурации службы Postgres Pro. Ранее поправка очков OOM устанавливалась для всех процессов Postgres Pro, а не только для postmaster, поэтому, когда Postgres Pro исчерпывал всю оперативную память, могли уничтожаться другие важные процессы, например, sshd.

  • Исправлена ошибка в psql, из-за которой метакоманда \du+ ошибочно воспринималась как недопустимая. \du+ выводит список ролей базы данных с дополнительной информацией о каждой роли и равнозначна метакоманде \dg+, которая обрабатывалась правильно.

  • Добавлена поддержка Rocky Linux 8.

  • Прекращена поддержка устаревших операционных систем Debian 8, Astra Linux «Смоленск» 1.5 и МСВСфера 6.3.

  • Приложение mamonsu обновлено до версии 3.4.0. Основные изменения перечислены ниже:

    • Добавлен новый параметр timeout в раздел [zabbix] конфигурационного файла mamonsu. Данный параметр позволяет установить максимальное время ожидания при подключении к серверу Zabbix.

    • Добавлена новая команда mamonsu dashboard upload имя_шаблона, предназначенная для загрузки панели Zabbix с метриками mamonsu в шаблон на сервере Zabbix версии 6.0 или выше.

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

  • Для команды checkdb приложения pg_probackup добавлен параметр --checkunique, работающий только с --amcheck и позволяющий проверять ограничения уникальности в ходе проверки индексов. Для соответствующей проверки в базе данных должно быть установлено расширение amcheck подходящей версии. За подробностями обратитесь к документации amcheck.

  • Расширение pgpro_pwr обновлено до версии 3.7.

E.20.2. Миграция на версию 13.6.1

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

Если вы ранее мигрировали на 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.