Дата выпуска: 2024-11-27
Этот выпуск Postgres Pro Standard должен стать последним в серии 12. Пользователям следует поторопиться с переходом на более новую основную версию Postgres Pro Standard.
Этот выпуск основан на PostgreSQL 12.22 и Postgres Pro Standard 12.20.1. Все усовершенствования, унаследованные от PostgreSQL 12.22, перечислены в Замечаниях к выпуску PostgreSQL 12.22. Другие важные изменения и улучшения перечислены ниже:
Добавлена возможность преобразования связанных подзапросов IN в соединения.
Реализована возможность выгружать состояние отдельного обслуживающего процесса путём отправки сигнала выгрузки.
Устранена ошибка сегментации, которая могла возникнуть в ходе команды COPY TO при использовании модуля online_analyze.
Устранена ошибка, которая могла приводить к переполнению стека в сценариях с большим количеством подтранзакций. Теперь при обработке процесса фиксации транзакции вместо хвостовой рекурсии используется итерация.
Устранена утечка памяти, которая могла возникнуть, если в выводе команды EXPLAIN было более 64 столбцов.
Устранена проблема, из-за которой команда EXPLAIN ANALYZE отображала неверное количество вставленных и конфликтующих кортежей во время вставки строк с конфликтующими первичными ключами при использовании ON CONFLICT DO NOTHING.
Устранена проблема, которая могла замедлить выполнение запроса. Причина заключалась выборе неоптимального индекса оптимизатором из-за отсутствия оценки его стоимости после удаления избыточных предложений с включённым (значение ON) параметром enable_appendorpath.
Приложение mamonsu обновлено до версии 3.5.9, в которой улучшена производительность и исправлены некоторые ошибки. Основные изменения перечислены ниже:
Добавлена поддержка систем, в которых установлена версия setuptools выше 67.7.2.
Прекращено использование указания user:group с точками на этапе перед установкой RPM.
Расширение oracle_fdw обновлено до версии 2.7.0.
Модуль orafce обновлён до версии 4.13.5.
Расширение pg_filedump обновлено до версии 17.1, в которой была устранена проблема, приводившая к ошибке сегментации при обработке неполных страниц и сбою pg_filedump.
Расширение pg_portal_modify обновлено до версии 0.3.4.
Приложение pg_probackup обновлено до версии 2.8.5, в которой улучшена производительность и исправлены некоторые ошибки:
Добавлена возможность вывода команды version в формате JSON с помощью --format=json.
Добавлен параметр --all для команды amcheck, который позволяет выполнить все проверки в одной команде.
Добавлена поддержка параметра include в файле конфигурации. Содержимое файла, указанного в include, добавляется в файл конфигурации вместо этого параметра.
Добавлена возможность указывать конкретное количество потоков для выполнения резервного копирования и его последующей проверки, задав их в параметрах --backup-threads и --validate-threads соответственно.
Изменён приоритет значений PGDATA и BACKUP_PATH. Теперь приоритет имеют значения из параметров командной строки.
Добавлена проверка файлов WAL для резервных копий, объединяемых командой merge.
Сообщение об ошибке, которое выдавалось, когда команда validate, запущенная с параметром --wal, обнаруживала архив в состоянии DEGRADED, было заменено предупреждением, поскольку резервные копии в этом состоянии не влияют на корректность восстановления в целом.
Устранена проблема, которая могла возникнуть при слишком длинной командной строке.
Устранена ошибка, которая могла возникнуть во время проверки или восстановления, если использовался механизм PITR из предыдущей линии времени.
Утилита pgpro_controldata обновлена до версии 17.1.0.
Расширение pgpro_stats обновлено до версии 1.8, в которой добавлена поддержка Postgres Pro 17. Основные изменения перечислены ниже:
Обновлены представления pgpro_stats_statements и pgpro_stats_totals, чтобы включить новые поля, добавленные в модуль pg_stat_statements. Также были обновлены соответствующие функции.
Упрощён доступ к представлениям и функциям. В частности, всем пользователям был предоставлен доступ к представлениям pgpro_stats_archiver, pgpro_stats_vacuum_database, pgpro_stats_vacuum_tables и pgpro_stats_vacuum_indexes. Ранее для этих представлений требовалось явное предоставление прав доступа. Доступ к выполнению функции pgpro_stats_trace_reset, которая ранее могла быть выполнена любым пользователем, теперь ограничен суперпользователями.
Реализована оптимизация, которая в некоторых случаях снижает время блокировки при копировании метрик из локальной памяти в общую.
Устранена избыточная проверка удержания блокировки при доступе к хеш-таблице фильтров трассировки сеансов.
Исправлена обработка параметра конфигурации pgpro_stats.stats_temp_directory. Ранее после перезапуска сервера, необходимого для вступления в силу изменений значения этого параметра, могла возникнуть фатальная ошибка «pfree called with invalid pointer» (неверный указатель для функции pfree).
Устранена проблема, которая могла возникнуть во время трассировки сеанса и вызвать ошибки «could not write file ""pg_stat/pgpro_stats_filters.trace.tmp"": No such file or directory» (не удалось записать файл ""pg_stat/pgpro_stats_filters.trace.tmp"": Такого файла или каталога не существует). Параллельная запись из разных сеансов в файл трассировки теперь работает корректно, и процессы могут выполнять запись в файл трассировки параллельно без конфликтов.
Модуль pgpro_pwr обновлён до версии 4.7, в которой улучшена производительность и добавлены новые возможности. Основные изменения перечислены ниже:
Механизм промежуточных выборок для сбора относительно быстро меняющихся данных.
Новые таблицы отчётов, в частности касающиеся состояний сеансов.
Поддержка новых статистик Postgres Pro 17.
Возможность не сбрасывать статистику расширения по сбору статистики при получении выборки.
Изменение тип поля, отслеживающего идентификаторы транзакций в определённой таблице, с xid на text. Использование типа xid ранее могло привести к сбою pg_upgrade при обновлении с Postgres Pro Standard до Postgres Pro Enterprise.
Модуль pg_repack обновлён до версии 1.5.1.
Расширение pg_wait_sampling обновлено для отслеживания идентификаторов подзапросов и операторов утилит. Также был добавлен параметр pg_wait_sampling.sample_cpu, который позволяет указать режим обработки показаний, определяющий, следует ли выполнять обработку показаний процессов, использующих ЦП.
Расширение PTRACK обновлено для предотвращения возможных проблем с резервными копиями PTRACK путём автоматического удаления файла ptrack.map при отключении PTRACK.
Если вы обновляете выпуск Postgres Pro Standard на базе той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.
Версия ABI может измениться в корректирующем выпуске Postgres Pro. В таком случае при попытке запустить расширение возникает ошибка ABI mismatch (Несоответствие ABI), поэтому обязательно установите новую версию расширения, поставляемую с новым выпуском Postgres Pro, или перекомпилируйте стороннее расширение, чтобы использовать его с текущей версией Postgres Pro.
Если вы создаёте резервные копии с помощью pg_probackup и ранее обновили его до версии 2.8.0 или 2.8.1, обязательно обновите его до версии 2.8.2 или выше и сделайте полную резервную копию базы данных после обновления, поскольку резервные копии, созданные с использованием этих версий, могут быть повреждены. Чтобы проверить, повреждены ли резервные копии, созданные с помощью версий 2.8.0 или 2.8.1, можно использовать версию 2.8.2.
Встроенные функции numeric_eq, numeric_ne, numeric_gt, numeric_ge, numeric_lt и numeric_le фактически являются герметичными, но они не имели соответствующей пометки в Postgres Pro Standard версии 12.1.1, в результате чего запросы могли выполняться неоптимально. В частности, это отрицательно сказывалось на производительности запросов при использовании политик защиты на уровне строк. В версии 12.2.1 это было исправлено для новых инсталляций в результате корректировки исходных данных каталога, но существующие инсталляции сохранят некорректные пометки, пока вы не исправите записи этих функций в pg_proc. Чтобы их исправить, обновите экземпляр сервера с помощью pg_upgrade либо вручную измените их в существующем кластере, выполнив во всех его базах данных соответствующие команды ALTER FUNCTION. Например:
ALTER FUNCTION pg_catalog.numeric_eq LEAKPROOF
При обновлении с версии Postgres Pro 12.6.1 и ниже перестройте покрывающие индексы с неключевыми столбцами, для которых на уровне таблицы определено правило сортировки.
Если вы используете PTRACK в процедуре резервного копирования, реализуемой c помощью утилиты pg_probackup, и обновляетесь с Postgres Pro версии 12.6.2 или ниже, сделайте полную резервную копию базы данных после обновления.