E.20. Postgres Pro Enterprise 12.10.1

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

E.20.1. Обзор

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

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

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

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

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

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

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

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

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

  • Устранена утечка памяти в процессе postmaster. Ранее при каждом подключении терялся небольшой объём памяти.

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

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

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

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

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

  • Приложение pg_probackup обновлено до версии 2.5.5, в которой по сравнению с версией 2.5.3 были исправлены некоторые ошибки и появились новые возможности:

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

    • Устранена проблема, которая могла возникнуть, когда исходная БД не находилась на линии времени 1 и целевая не отставала от исходной: probackup проверял целостность истории линии времени catchup и выводил сообщение об ошибке «Destination is not in source timeline history» (Целевого состояния нет в истории исходной линии времени).

    • Устранена проблема, связанная с поведением catchup в режимах DELTA и PTRACK. Она могла проявляться, когда использовалось удалённое подключение через SSH и в параметрах --destination-pgdata и --source-pgdata задавался одинаковый путь, и вызывала повреждение исходного экземпляра (как минимум удалялись файлы global/pg_control, global/pg_filenode.map и base/*/pg_filenode.map); в результате выводилось сообщение вида «Could not open file "/pgwal/test/global/pg_control" for reading: No such file or directory» (Не удалось открыть для чтения файл "/pgwal/test/global/pg_control": нет такого файла или каталога).

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

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

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

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