E.11. Postgres Pro Enterprise 15.6.1
Дата выпуска: 2024-02-22
E.11.1. Обзор
Этот выпуск основан на PostgreSQL 15.6 и Postgres Pro Enterprise 15.5.1. Все изменения, унаследованные от PostgreSQL 15.6, описаны в Замечаниях к выпуску PostgreSQL 15.6. По сравнению с Postgres Pro Enterprise 15.5.1 эта версия также содержит следующие изменения:
- Введены два новых модификатора для работы с пакетами: - #privateи- #export. Модификатор- #privateопределяет функции и процедуры как внутренние, а модификатор- #exportопределяет, какие переменные пакета являются публичными.
- Добавлены параметры конфигурации, позволяющие управлять сбором информации о сбоях сервера. Параметр crash_info включает эту функциональность, а crash_info_dump и crash_info_location указывают содержимое и расположение файлов с информацией о сбоях соответственно. 
- Добавлен новый параметр конфигурации cfs_gc_respond_time, позволяющий задавать интервал времени, в течение которого CFS ждёт снятия блокировки с файла в процессе сборки мусора, прежде чем запишет предупреждение в журнал. 
- Оптимизировано потребление памяти при оценке избирательности для каждого элемента массива по сравнению с ванильными версиями PostgreSQL. 
- Оптимизировано аннулирование локального кеша отношений в случаях, когда кортеж временной таблицы или кортеж индекса в - pg_classне обновляется при усечении отношения.
- Изменены на - lz4значения по умолчанию параметров конфигурации default_toast_compression и wal_compression, что ускоряет обработку WAL и TOAST и снижает объём используемого дискового пространства.
- Исправлено некорректное преобразование цепочек HOT из 32-битного в 64-битный формат после обновления Postgres Pro Enterprise с помощью pg_upgrade, ранее приводившее к появлению бесконечного цикла очистки. Количество повторных попыток очистки теперь ограничено одной на кортеж. При превышении в журнал заносится ошибка. 
- Устранена ошибка сегментации, которая могла возникнуть при выполнении запросов или использовании планировщика во время работы расширения pg_pathman. Расширение не учитывало появление новых полей в структуре - RangeTblEntry(RTE), и они инициализировались некорректно. При создании обычной копии родительской RTE pg_pathman также переносились указатели на родительские классы эквивалентности или их члены. Это несоответствие обнаруживалось при планировании запроса и вызывало ошибку.
- Устранены условия гонки между рабочим процессом автоочистки и серверными процессами при удалении потерянных таблиц, приводившие к ошибкам «cache lookup failed for relation» (ошибка поиска в кеше для отношения). Теперь при удалении потерянных таблиц процесс автоочистки блокирует пространства имён. 
- Устранена проблема, которая могла возникать во время установки сервера Postgres Pro в системах на базе Debian, включённых в домен с пользователем - postgres.
- Исправлен вывод скрипта pg-setup, в котором при инициализации кластера ошибочно отображалась локаль из переменной окружения - LANG. Теперь сообщение о локали на данном этапе не отображается.
- Устранена проблема, которая могла возникать в случае сбоя рабочего процесса сборки мусора CFS. Раньше для продолжения работы требовался перезапуск сервера, поскольку рабочий процесс не перезапускался автоматически. Теперь рабочий процесс перезапускается, если был недоступен более 10 секунд. 
- Сокращено время жизни временных файлов CFS, которые образуются при работе сборщика мусора или в ходе выполнения операции - VACUUM FULL.
- Прекращена поддержка Rosa Enterprise Linux Server 7. 
- Прекращена поддержка ОС РОСА «КОБАЛЬТ» (серверная редакция) на платформе РОСА 7. 
- Расширение apache_age обновлено до версии 1.5.0. 
- Модуль orafce обновлён до версии 4.9.2. 
- pg_filedump обновлён до версии 16.1. 
- Приложение pg_probackup обновлено до версии 2.7.2 Enterprise, в которой улучшена производительность и исправлены некоторые ошибки. Основные изменения перечислены ниже: - Оптимизировано использование памяти при резервном копировании в удалённом режиме. 
- Устранена проблема, возникавшая во время инкрементального копирования, из-за которой ещё не скопированная таблица удалялась из CFS. 
- Исправлен порядок обработки файлов WAL командой - archive-pushв случаях, когда количество файлов WAL превышает указанное значение- --batch-size.
- Исправлена ошибка «WAL segment is absent» (сегмент WAL отсутствует), которая могла возникнуть, если размер регистрируемой записи WAL превышал размер сегмента WAL. 
- Устранена ошибка, возникавшая при создании версионированного бакета в VK Cloud. 
- Устранена ошибка сегментации, возникавшая во время выполнения команды - mergeв S3.
 
- Утилита pg_repack обновлена до версии 1.5.0. 
- Обновлено расширение pg_variables, которое теперь предоставляет функциональность итератора для любых коллекций, а также функции для работы с общими переменными-коллекциями. Эти функции позволяют получить доступ к элементам коллекции по ключу, который может иметь целочисленный или текстовый тип. Эти улучшения облегчают миграцию кода Oracle, обрабатывающего коллекции. 
- Расширение pg_proaudit обновлено до версии 2.0, в которую включены следующие основные изменения и усовершенствования: - Добавлены новые функции - pg_proaudit_set_ruleи- pg_proaudit_remove_rule, которые позволяют создавать и удалять правила регистрации событий соответственно. Эти функции заменили- pg_proaudit_set_object,- pg_proaudit_set_role,- pg_proaudit_reset_objectи- pg_proaudit_reset_role.
- Реализована возможность регистрировать группы событий, указав соответствующее значение в аргументе - event_type.
- В представление - pg_proaudit_settingsдобавлен столбец- comment, в котором отображается комментарий с описанием созданного правила регистрации событий.
- Реализована возможность регистрации событий безопасности, связанных с объектами типа - PREPARED STATEMENT, а также событий типов- DEALLOCATE,- EXECUTEи- PREPARE.
- Устранена проблема с некорректной регистрацией событий безопасности для команд - CREATE DATABASE,- CREATE GROUP,- CREATE ROLE,- CREATE TABLESPACEи- CREATE USER. Раньше эти события регистрировались как- SUCCESSпосле проверки синтаксиса и до выполнения самой команды. Теперь- SUCCESSвносится в журнал при завершении выполнения команды, а в случае сбоя она помечается как- FAILURE.
 
- Расширение pgpro_anonymizer обновлено до версии 1.2.0. 
- Расширение pgpro_stats обновлено до версии 1.7, в которой улучшена производительность и исправлены некоторые ошибки: - Реализация в расширении pgpro_stats чтения файла «текстов запросов» блоками размером не больше 1 ГБ (подобно аналогичной реализации в pg_stat_statements). Такие большие файлы с текстами запросов встречаются крайне редко, но в случае их наличия ранее происходил сбой в 64-битной ОС Windows (в которой один запрос на чтение файла не может прочитать больше 2 ГБ). 
- Добавлена обратная совместимость функций - pgpro_stats_statementsи- pgpro_stats_totals. Теперь поддерживаются случаи, когда более новая версия загружаемого модуля pgpro_stats используется со старым объявлением SQL функций. Ранее подобные случаи вызывали крах сервера.
- Устранена проблема, из-за которой не выводились статистики очистки баз данных в представлении - pgpro_stats_vacuum_database.
 
- Модуль pgpro_pwr обновлён до версии 4.4, в которой добавлена поддержка pgpro_stats 1.7, и в отчёты включены новые интерактивные возможности и фильтрация на основе подстроки. 
- Расширение PLV8 обновлено до версии 3.2.2. 
- Модуль sr_plan был обновлён, в новой версии улучшена производительность и исправлены некоторые ошибки: - Добавлен параметр конфигурации - sr_plan.auto_tracking, позволяющий автоматически нормализовывать и регистрировать запросы, выполняемые с использованием команды- EXPLAIN.
- Реализована возможность сохранять разные планы запроса с разными наборами параметризованных констант с помощью уникальной пары - queryidи- const_hash, где- const_hash— это хешированное значение непараметризованных констант. Эта пара ключей заменила- srid.
- Реализована возможность замораживания планов запросов на основе наборов указаний, которые можно увидеть в новом столбце - hintstrпредставлений расширения.
- Устранена проблема, из-за которой расширение не могло заморозить план для зарегистрированного запроса, что могло приводить к сбою из-за нехватки памяти при повторной попытке заморозить тот же план. 
- Устранена проблема с удалением файла хранилища планов запросов, которая могла возникнуть при обновлении Postgres Pro. Теперь создаётся резервная копия файла, благодаря чему можно вернуться к предыдущей версии расширения и восстановить планы запросов. 
 
E.11.2. Миграция на версию 15.6.1
Если вы производите обновление выпуска Postgres Pro Enterprise, базирующегося на той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.
Начиная с Postgres Pro Enterprise 15.5.1, права ролей с атрибутом CREATEROLE ограничены, и для изменения свойств других ролей требуется наличие права ADMIN OPTION.
Настоятельно не рекомендуется обновлять кластер с 32-битными идентификаторами транзакций на версии Postgres Pro Enterprise ниже 15.4.2 при наличии мультитранзакций в базе данных, поскольку это может вызвать повреждение данных.
При обновлении до версии Postgres Pro Enterprise 15.3.1 и выше обязательно обновите pg_probackup Enterprise до версии 2.6.4 или выше, поскольку более ранние версии pg_probackup несовместимы с этими версиями Postgres Pro Enterprise.
Для перехода с PostgreSQL, а также с выпуска Postgres Pro Standard или Postgres Pro Enterprise, базирующегося на предыдущей основной версии PostgreSQL, обратитесь к инструкциям по миграции на версию 15.