E.24. Postgres Pro Enterprise 13.6.1

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

E.24.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.24.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.

E.24. Postgres Pro Enterprise 13.6.1

Release Date: 2022-03-18

E.24.1. Overview

This release is based on PostgreSQL 13.6 and Postgres Pro Enterprise 13.5.1. All changes inherited from PostgreSQL 13.6 are listed in PostgreSQL 13.6 Release Notes. As compared with Postgres Pro Enterprise 13.5.1, this version also provides the following changes:

  • Improved access to the LSN field in the page header by reading it atomically instead of locking to reduce lock contention; added caching of the block number of the page to speed up retrieving of block numbers. Now multiple clients can provide better performance when accessing the same blocks concurrently.

  • Added the pgpro_stats_wal_sender_crc_errors function that returns the number of errors detected by the WAL sender process.

  • Increased the number of partitions of the shared buffer mapping hash table to 1024, which can improve performance on multi-core systems.

  • Implemented support of interval values by all time parameters (*_TIME) of CREATE PROFILE and ALTER PROFILE SQL commands.

  • Fixed a bug in the CFS causing subtle corruption of data in compressed tablespaces at the server startup on Windows after an abnormal termination or when restoring a backup.

  • Fixed an issue with lazy conversion from 32-bit to 64-bit transaction IDs in read-only transactions or on replicas by enforcing marking pages as subject to full-page writes to WAL. This issue could cause failures to synchronize conversion results to other replicas.

  • Fixed segmentation fault, which might have occurred when executing a specific procedure calling pattern while plan_cache_lru_memsize was set.

  • Fixed an issue with *.cfm files that were unexpectedly left in compressed tablespaces after dropping a table.

  • Fixed VACUUM logic for handling multixact IDs correctly. Previously, table vacuuming could produce found multixact XXX from before relminmxid... errors, which didn't corrupt data.

  • Fixed the use of multi-column statistics by planner. Previously, when the optimizer estimated the query selectivity using multi-column statistics and the query conditions only included part of the columns involved, the cardinality could be considerably overestimated, so the created plan would be non-optimal.

  • Fixed the out-of-memory (OOM) killer settings in system startup files. Previously the OOM score adjustment value was set for all Postgres Pro processes rather than for postmaster only, so when Postgres Pro exhausted all RAM, the OOM killer could start killing irrelevant processes, such as sshd.

  • Fixed an issue in psql, which mistakenly treated the \du+ meta-command as invalid. \du+ lists database roles showing additional information about each role and is equivalent to the \dg+ meta-command, which was processed correctly.

  • Added support for Rocky Linux 8.

  • Ended support for outdated operating systems Debian 8, Astra Linux Smolensk 1.5 and MSVSphere 6.3.

  • Upgraded mamonsu to version 3.4.0. Notable changes are as follows:

    • Added a new timeout parameter to the [zabbix] section of the mamonsu configuration file. It allows you to set maximum time to wait while connecting to the Zabbix server.

    • Added a new mamonsu dashboard upload template_name command, which can be used to upload a Zabbix dashboard with the mamonsu metrics to a template on the Zabbix server version 6.0 or higher.

  • Fixed an issue with disconnecting nodes in multimaster by disabling timeouts for the multimaster processes. Previously, the processes could abort due to timeouts set in the server configuration, e.g. statement_timeout.

  • Added the --checkunique option to the pg_probackup checkdb command to work together with --amcheck and verify unique constraints during logical verification of indexes when the amcheck extension is installed in the database and its version supports this verification. Check with the documentation for amcheck for more details.

  • Upgraded pgpro_pwr to version 3.7.

E.24.2. Migration to Version 13.6.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.

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.

FAQ