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 (указатель возврата инструкции). Это обеспечивает лучшую диагностику, особенно с сигналами 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.

  • Добавлено расширение 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.