E.1. Postgres Pro Standard 17.6.1 #
Дата выпуска: 2025-09-18
E.1.1. Обзор #
Этот выпуск основан на PostgreSQL 17.6 и Postgres Pro Standard 17.5.1. Все усовершенствования, унаследованные от PostgreSQL 17.6, перечислены в Замечаниях к выпуску PostgreSQL 17.6. Другие важные изменения и улучшения перечислены ниже:
Улучшена производительность за счёт замены циклических блокировок, ранее используемых для общей очереди сообщений аннулирования, более эффективным примитивом синхронизации. Это позволило устранить узкое место в производительности. Может быть полезно для 1C.
Обновлены CREATE DATABASE, createdb и initdb. Теперь если значение lc_collate по умолчанию используется для
icu_localeили--icu-locale, выводится информационное сообщение.Оптимизировано поведение при работе с функцией
COALESCE. Теперь функция заменяется одним аргументом, если остальные аргументы оказываютсяnull. Это позволяет улучшить оценку избирательности для условий запросов и создавать более эффективные планы выполнения запросов.Добавлены следующие изменения в реализацию crash_info:
Добавлены параметры конфигурации crash_info_timer, crash_info_timer_interval и crash_info_query_threshold, которые позволяют профилировать длительные запросы в выходных файлах
crash_info.Расширена диагностическая информация, которую параметр конфигурации crash_info_dump позволяет записать в случае сбоя сервера. По умолчанию теперь поддерживается запись общей информации об ошибке (сигнале), а для Linux x64 также дамп информации о состоянии процессора и байтов рядом с RIP (return instruction pointer, указатель возврата инструкции). Всё это обеспечивает лучшую диагностику, в частности, для сигналов
SIGILL(недопустимая инструкция). Также был изменён способ дампа стека в случае сбоев для Linux x64. Кроме того,memory_contextудалён из списка источников дампа по умолчанию, чтобы избежать сбоев, которые могут возникнуть при записи диагностической информации.
Устранена проблема при обработке очереди
LISTEN/NOTIFY, из-за которой нельзя было получить статус транзакции. Ранее процедураVACUUM FREEZEмогла увеличить значениеdatfrozenxidслишком сильно.Устранена проблема, из-за которой планировщик мог выбирать неоптимальные планы выполнения запросов с оператором
LIKEдля типа данныхmchar.Добавлена поддержка ОС Debian 13, Red Hat Enterprise Linux 10, Rocky Linux 10, Oracle Linux 10 и AlmaLinux 10.
Прекращена поддержка ОС Ubuntu 20.04/24.10.
Добавлено расширение wal2json для логического декодирования, которое преобразует изменения базы данных из журнала предзаписи (WAL) в формат JSON.
Обновлён модуль aqo. Включены следующие исправления:
В представление aqo_data добавлено поле
tmpoids, а в функциюaqo_data_update— параметрtmpoidsдля поддержки запросов, которые используют временные таблицы вместе с постоянными таблицами.Устранено условие гонки при вызове функции
aqo_cleanupиз разных сеансов.Устранена проблема, из-за которой данные обучения aqo не сохранялись для запросов с материализацией.
Устранена проблема с обучением aqo на узлах, работа на которых прекращается досрочно. Теперь aqo обучается на таких узлах с минимальным значением
reliability, только если фактическое число строк превышает ожидаемое. В остальных случаях механизм обучения отключён.
Модуль auto_explain обновлён. В выводе время планирования запроса вынесено в отдельную строку под деревом планировщика, как это сделано в выводе
EXPLAIN. Ранее pgbadger не мог распознать информацию о запросе и поэтому не включал её в отчёт.Обновлено расширение pg_proaudit. Включены следующие усовершенствования:
Добавлена поддержка формата CEF для файлов журналов событий.
Скорректирован вывод pg_proaudit. Теперь поля
xidиvxidне отображаются, если имеют нулевое значение.
Приложение pg_probackup обновлено до версии 2.8.10, в которой добавлена новая функциональность, улучшена производительность и исправлены некоторые ошибки:
Для команды
add-instanceдобавлен параметр--wal-tree, который позволяет хранить заархивированные файлы WAL в древовидной структуре. Это повышает производительность операций при работе с журналами большого объёма.В вывод команды
showдобавлено полеpostgres-editionв форматеJSONдля отображения информации о редакции СУБД.Улучшена работа с параметром
--dry-runпри восстановлении табличных пространств. Оценка операции и вывод плана стали более точными.Устранена проблема, связанная с вычислением окна хранения. Значение времени теперь берётся с компьютера, на котором работает pg_probackup. Окно хранения вычисляется правильно, даже если серверы расположены в разных часовых поясах.
Устранена проблема, связанная с работой команды
archive-get. Теперь каталогpbk_prefetchсоздаётся с правильными правами доступа, которые наследуются изPGDATA.Устранён ложный сбой команды
checkdb, возникавший в удалённом режиме при параллельных операцияхTRUNCATEили удалении таблиц на резервных узлах.
Устранены следующие проблемы с модулем pgpro_bindump:
Устранён риск сбоя pg_probackup3, если в ходе проверки резервных копий с использованием модуля pgpro_bindump в режиме PRO встречались временные таблицы.
Устранена утечка памяти в pg_probackup3 при использовании модуля pgpro_bindump для операций PTRACK.
Устранена проблема, которая может привести к зацикливанию в pg_probackup3 при использовании модуля pgpro_bindump.
Устранена проблема с резервным копированием в нескольких линиях времени в режиме PTRACK в pg_probackup3 при использовании модуля pgpro_bindump в режиме PRO.
Модуль pgpro_pwr обновлён до версии 4.10, в которой полностью изменён дизайн отчётов и добавлена поддержка PostgreSQL 18.
Обновлено расширение pgpro_stats. Включены следующие усовершенствования и исправления:
Реализована возможность отслеживать команды утилиты по
query_id, как в pg_stat_statements. Ранее команды утилиты отслеживались путём строгого сравнения по текстовым строкам запросов и поэтому не могли быть нормализованы корректно.Исправлена ошибка сегментации, которая могла возникать при определении дополнительных метрик. Ошибка была вызвана проблемой при выделении памяти.
Устранена проблема, из-за которой при использовании пресета
1c.tuneутилиты pgpro_tune задавались неверные значения параметров конфигурации.Модуль pg_query_state обновлён до версии 1.2, в которую добавлены функции pg_progress_bar и pg_progress_bar_visual, позволяющие отслеживать текущий прогресс выполнения запросов.
Обновлён модуль rum. Включены следующие исправления:
Исправлена ошибка сегментации, вызванная некорректным обращением к памяти, когда указатель на следующую страницу индекса использовался после того, как предыдущая страница была изменена другим потоком.
Устранён бесконечный цикл сканирования индекса при использовании нескольких предложений
ORDER BY.
E.1.2. Миграция на версию 17.6.1 #
Если вы производите обновление выпуска Postgres Pro Standard, базирующегося на той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.
Важно
Если вы использовали предыдущую версию aqo и её потребовалось обновить, версия aqo на резервном сервере может отличаться от версии модуля на ведущем.
Чтобы избежать связанных с этим проблем, отключите aqo, задав для параметров aqo.enable и aqo.wal_rw значение off сначала на ведущем сервере, а потом на резервных серверах. После успешного обновления включите aqo, задав для параметров aqo.wal_rw и aqo.enable значение on сначала на резервных серверах, а потом на ведущем сервере.
Версия ABI может измениться в корректирующем выпуске Postgres Pro. В таком случае при попытке запустить расширение возникает ошибка ABI mismatch (Несоответствие ABI), поэтому обязательно установите новую версию расширения, поставляемую с новым выпуском Postgres Pro, или перекомпилируйте стороннее расширение, чтобы использовать его с текущей версией Postgres Pro.
Для перехода с PostgreSQL или выпуска Postgres Pro Standard, базирующегося на предыдущей основной версии PostgreSQL, обратитесь к инструкциям в Замечаниях к выпуску Postgres Pro Standard 17.0.1.