E.8. Postgres Pro Enterprise 14.7.1

Дата выпуска: 2023-03-07

E.8.1. Обзор

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

  • Добавлен параметр enable_large_mem_buffers, позволяющий копировать и выгружать значения типов bytea и text большого размера. Этот параметр может быть задан только для текущего сеанса. Также был добавлен ключ --enable-large-mem-buffers для утилит pg_dump и pg_dumpall. Утилита pg_restore теперь по умолчанию может восстанавливать такие значения.

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

  • Устранена ошибка сегментации, которая могла возникать в PL/pgSQL при попытке удалить отдельное поле составного типа после завершения автономной транзакции.

  • Добавлена поддержка ОС РОСА «КОБАЛЬТ» Сервер 7.9 и прекращена поддержка ОС РОСА «КОБАЛЬТ» Сервер 7.3.

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

  • Устранено снижение производительности, наблюдавшееся в запросах на реплике, где old_snapshot_threshold > 0. Производительность могла снижаться не только на репликах, но более явно проблема проявлялась на них.

  • Модуль aqo обновлён до версии 1.6, в которой появились новые возможности:

    • Добавлен «умный» тайм-аут операторов, который необходим для ограничения времени выполнения при ручном обучении aqo на специальных запросах с неудовлетворительным прогнозом количества строк. Расширение aqo может динамически изменять умный тайм-аут операторов во время этого обучения.

    • Добавлены функции aqo_query_stat_update, aqo_data_update и aqo_query_texts_update для изменения и добавления записи в файлы данных, на которых основано соответствующее представление.

    • Добавлена функция aqo_memory_usage, показывающая объём памяти, требуемый исключительно для aqo.

    • Функции aqo_enable_query и aqo_disable_query переименованы в aqo_enable_class и aqo_disable_class соответственно.

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

  • Приложение pg_probackup обновлено до версии 2.6.1 Enterprise, которая обладает следующими возможностями:

    • Оптимизирован механизм ввода/вывода pg_probackup для повышения производительности.

    • Добавлена поддержка Simple Storage Service (S3) для хранения данных в частных облачных хранилищах. Интерфейс S3 был протестирован с объектным хранилищем MinIO и хранилищем VK Cloud. Обратите внимание, что pg_probackup обеспечивает полную обработку журналов интерфейса S3.

    • Добавлена поддержка CFS (сжатой файловой системы) для инкрементального копирования в режимах DELTA, PAGE и PTRACK. Рекомендуется использовать режим PTRACK как самый быстрый способ инкрементального копирования, но учтите, что для его работы необходимо приложение PTRACK версии 2.4.0 или выше.

    • Добавлена поддержка алгоритмов сжатия lz4 и zstd.

    • Прекращена поддержка Postgres Pro 9.6.

  • Расширение PTRACK обновлено до версии 2.4.1.

  • pgbouncer обновлён до версии 1.18.

  • Приложение pgpro_scheduler обновлено до версии 2.9, в которую были включены следующие изменения:

    • Исправлена ошибка в функции schedule.resubmit, препятствовавшая корректному сохранению состояния выполненного задания. Кроме того, эта функция теперь может принимать 0 в качестве интервала времени: в этом случае задание перезапускается сразу после выполнения.

    • Устранена проблема в функции schedule.timetable, ранее приводившая к завершению функции ошибкой при вызове любым суперпользователем, кроме postgres.

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

    • Добавлен подсчёт статистики по снятию меток полной видимости и полной заморозки в карте видимости.

    • Добавлено представление pgpro_stats_vacuum_database, показывающее статистику очистки каждой базы данных в кластере.

    • Исправлена ошибка, которая могла вызвать крах сервера при установленном значении all для параметра pgpro_stats.track, когда тело функции обрабатывалось в pgpro_stats в виде составного запроса.

    • Исправлено ошибочное появление предупреждения «unrecognized expression node type: ...» (нераспознанный тип узла), если в плане запроса попадался узел GatherMerge.

    • Исправлено возможное долгое выполнение запроса, содержавшего тексты документов в формате JSON и/или XML, из-за того, что во время нормализации текста плана запроса могла ошибочно происходить замена констант внутри текста таких документов.

  • Модуль pgpro_pwr обновлён до версии 4.1.2.

  • Расширение PLV8 обновлено до версии 3.1.5.

E.8.2. Миграция на версию 14.7.1

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

Если вы хотите сохранить существующее представление карт видимости в pageinspect при миграции на текущую основную версию Postgres Pro Enterprise с использованием pg_upgrade, выполните команду VACUUM, прежде чем начинать обновление.

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