E.1. Postgres Pro Shardman 17.9.2 #
Дата выпуска: 2026-04-06
Этот выпуск основан на Postgres Pro Shardman 17.7.1 и PostgreSQL 17.9. Он также наследует часть возможностей и исправлений Postgres Pro Enterprise 17.9.2. Все новые возможности, появившиеся в PostgreSQL 17.9, вы можете найти в разделе Замечания к выпуску PostgreSQL 17. Ниже перечислены значимые отличия этой версии от Postgres Pro Shardman 17.7.1.
E.1.1. Ядро и расширения #
Отличия этой версии от Postgres Pro Shardman 17.7.1:
Прекращена поддержка Debian 11.
Исправлена ошибка обновления сторонних серверов после восстановления из резервной копии.
Улучшения и исправления, унаследованные от Postgres Pro Enterprise 17.9.2:
Реализована возможность для оптимизатора добавлять узлы плана
Index Only Scanниже узловAppend, которые генерируются для предложенийOR, если для параметра enable_appendorpath установлено значениеon. Это позволяет создавать более эффективные планы запросов и улучшать производительность.Реализована возможность для оптимизатора упрощать конструкции
NOT NOTвыражениедовыражениев связанных подзапросах, тем самым позволяя «подтягивать» эти подзапросы в основной план запроса и улучшать производительность.Добавлена возможность для оптимизатора преобразовывать связанные подзапросы с выражением равенства в связанные подзапросы
IN, если для параметра enable_extra_transformations установлено значениеon. Это позволяет оптимизатору «подтягивать» получившиеся подзапросы и улучшать производительность.Добавлена новая возможность планировщика запросов преобразовывать предложения
ORв запросыUNION ALL. Такие преобразования могут значительно повысить производительность и особенно полезны для запросов, обращающихся к нескольким таблицам. Чтобы включить эту функциональность, используйте новый параметр конфигурации enable_orunion_transformation.Расширена область применения системного каталога в оперативной памяти. Теперь он также используется для временных функций, процедур и последовательностей. Ранее его можно было использовать только для временных таблиц и их индексов.
Улучшена производительность нетранзакционных операций усечения временных таблиц. Теперь если все страницы основного слоя данных временной таблицы находятся только в кеше
temp_buffers, то она может быть усечена мгновенно.Добавлена экспериментальная возможность многосегментной вставки, которая позволяет осуществлять массовую вставку данных в одну таблицу несколькими параллельными потоками. Эта функциональность пока не рекомендована для использования в производственной среде.
Сокращён объём отладочной информации, которая отправляется клиенту или записывается в журнал сервера. Сообщения уровня важности
DEBUG1об операциях с временными таблицами больше не выводятся.Оптимизирована производительность заморозки кортежей на странице.
Добавлены следующие изменения в реализацию crash_info:
Изменён формат имени выходных файлов
crash_info, в котором теперь указывается дата и время с точностью до микросекунд.Исправлена ошибка, которая могла возникать при попытке записать текст запроса в выходные файлы
crash_info.
Реализованы следующие исправления и усовершенствования для CFS:
Улучшена производительность CFS, которая сейчас использует контексты сжатия при использовании применяемого по умолчанию алгоритма zstd.
Изменено поведение функции cfs_compression_ratio. Теперь эта функция возвращает значение
NaNдля несжатых отношений.Исправлена ошибка, из-за которой работа pg_rewind могла завершаться с ошибкой при работе с нежурналируемыми таблицами с TOAST-данными в сжатом табличном пространстве. Причиной было отсутствие очистки файлов
*.cfmпри копировании «слоя инициализации» для нежурналируемых таблиц.Исправлена ошибка остановки сборки мусора CFS, из-за которой сборка могла продолжаться после отключения путём проставления для параметра
cfs_gcзначенияfalse.
Исправлена возможная ошибка сегментации в процессе запуска автоматической очистки из-за обращения к недействительному указателю.
Устранена ошибка сегментации, которая могла возникать при попытке добавить запись в кеш каталога.
Исправлена ошибка в логике работы параметра конфигурации skip_temp_rel_lock, из-за которой блокировки для временных отношений могли не пропускаться. Ошибка могла возникать после отката транзакции и зацикливания OID.
Исправлена ошибка, из-за которой сообщения, генерируемые во время захвата блокировки, содержали некорректные 64-битные идентификаторы транзакций.
Исправлена ошибка, из-за которой процесс автоматической очистки зацикливался на одних базах данных и не очищал другие. Это происходило из-за «мягких» ограничений автоочистки, которые могли задаваться параметрами конфигурации vacuum_freeze_table_age и vacuum_multixact_freeze_table_age. Эти ограничения были удалены. Они больше не нужны, поскольку значения параметров autovacuum_freeze_max_age и autovacuum_multixact_freeze_max_age теперь можно изменить без перезагрузки сервера.
Исправлена ошибка, которая могла возникать во время сбора статистики прерывания очистки для отношений и индексов, разделяемых всеми базами данных в кластере. Количество прерываний параллельной очистки теперь также учитывается в статистике.
Исправлена ошибка в механизме параллельного выполнения запросов с участием временных таблиц. Ранее на диск сбрасывались только страницы самой временной таблицы, без учёта связанных страниц (страниц индексов, TOAST-таблиц и т.д.). Теперь перед выполнением плана или подплана в параллельном режиме сбрасываются страницы всех временных отношений.
Добавлена поддержка SUSE Linux Enterprise Server (SLES) 16.
Обновлено расширение pg_proaudit. Включены следующие исправления и усовершенствования:
Добавлен параметр конфигурации pg_proaudit.log_rows, который включает или отключает регистрацию количества строк, затронутых SQL-командой.
Добавлено новое поле в журнал событий: продолжительность подключения. Теперь записи о событиях
DISCONNECTсодержат общую длительность подключения наряду с другими параметрами подключения.
Приложение pg_probackup обновлено до версии 2.8.13 Enterprise, в которой добавлена новая функциональность, улучшена производительность и исправлены некоторые ошибки:
Добавлены контроль целостности и проверка параметра
recovery-target-nameв архиве WAL при выполнении восстановления. Теперь предотвращаются ситуации, когда кластер Postgres Pro Shardman не может запуститься из-за недостижимости целевой точки восстановления. Если именованная точка восстановления была создана до последней резервной копии, процесс восстановления теперь корректно проверяет её существование.Добавлена возможность передавать параметры удалённому агенту в формате файла конфигурации, что повышает гибкость при работе с агентами резервного копирования в распределённых средах.
Добавлена поддержка запросов с использованием модели virtual-hosted-style для S3-хранилищ, включая автоматическое определение virtual-hosted-style по формату hostname (если hostname начинается с имени бакета) и улучшенную совместимость с различными реализациями S3 API (AWS S3, SberCloud и другие). В virtual-hosted-style URL имя бакета включается в hostname, что исключает необходимость добавлять его к пути файла.
Устранена проблема, из-за которой флаг
--skip-block-validationигнорировался при выполнении резервного копирования. Ранее это приводило к ошибке, если в кластере содержались страницы с некорректными контрольными суммами в заголовках. Это критически важно при включении контрольных сумм в старых кластерах, где уже могут существовать проблемы с контрольными суммами. Кроме того, теперь при использовании--skip-block-validationвыводится предупреждение.Улучшен механизм передачи статуса резервного копирования. Статус резервной копии теперь меняется на
DONEдо этапа проверки. Метаданные резервной копии записываются дважды: до проверки и по завершении резервного копирования. Командаshowтеперь отображает более точный статус резервной копии во время длительных проверок.Устранена проблема, которая могла приводить к аварийному завершению работы, если файл
backup_content.controlбыл удалён перед выполнением резервного копирования в режимеDELTA.
Утилита pgpro_controldata обновлена до версии 18.2.0.
Обновлено расширение pgpro_stats. Включены следующие исправления и усовершенствования:
Восстановлена возможность агрегирования статистики по сеансам, которая ранее была удалена как неиспользуемая. Будет ли агрегироваться статистика по сеансам, определяет параметр конфигурации
pgpro_stats.track_sessions.Улучшено поведение функций трассировки сеансов. Теперь функции
pgpro_stats_trace_insertиpgpro_stats_trace_updateзавершаются ошибкой, если в передаваемой последовательности пар ключ-значение какой-либо атрибут фильтра встречается несколько раз. Если функцииpgpro_stats_trace_updateпередаётся неправильный аргумент, изменения фильтра более не происходят. Функцияpgpro_stats_trace_showтеперь возвращает в точности те значения атрибутовexplain*, которые были заданы для фильтра.Добавлено исправление, благодаря которому удаётся избежать сбоя, если две или более константы имеют одно и то же расположение в тексте SQL-оператора.
Исправлена ошибка, которая могла приводить к сбою операций, пытающихся вытеснить буфер из кеша
temp_buffers, при этом выводилось сообщение «block N of table_name is still referenced» (на блок N имя_таблицы всё ещё есть ссылка).Исправлена ошибка, из-за которой в критической секции могла выделяться память и ошибки выводились уровнем важности
PANICвместоERROR.Реализована возможность кэширования дескрипторов файлов для каталогов в
PGDATA, и обновлены системные вызовыopenиstatдля использования этих кэшированных дескрипторов, что позволяет снизить нагрузку на процессор при планировании SQL‑запросов.
E.1.2. Утилиты управления #
Отличия этой версии от Postgres Pro Shardman 17.7.1:
Добавлена новая метрика
shared_xmin_rawв представлениеshardman.pg_stat_csn, которая отображает старейший XID, исключая влияние от горизонта идентификаторов транзакций каталога.Добавлен параметр
--for-upgradeдля командыshardmanctl restart. Также добавлен параметр--with-restartдля командыshardmanctl upgrade.Усилена защита словарей Postgres Pro Shardman от повреждений злонамеренными пользователями.
Обновлён механизм ручного переключения сегментов, теперь учитываются приоритеты узлов.
Версия etcd обновлена до 3.6.8 и исправлена соответствующая ошибка в случаях, когда узел etcd не возвращал версию.
Исправлена ошибка выполнения команды
shardmanctl shard rmпри нестандартных портах экземпляра.Исправлена ошибка вывода статусов при недоступности BiHA. Также исправлена ошибка выполнения команды
shardmanctl replicas reinitдля узлов в состоянии BiHANODE_ERROR.Исправлены следующие уязвимости: CVE-2025-61724, CVE-2025-58187, CVE-2025-47912, CVE-2025-58183, CVE-2025-61723, CVE-2025-58186, CVE-2025-58185, CVE-2025-58188, CVE-2025-61725, CVE-2025-61727, CVE-2025-61729, CVE-2025-61726, CVE-2025-68121, CVE-2026-33186.
Включены следующие исправления для checkup manager:
Исправлена ошибка выполнения команды
shardmanctl schema verify --filter sequences, которая ранее не определяла несоответствия в последовательностях.Исправлена ошибка выполнения функции
shardman.check_sharded_tables, которая ранее не определяла проблемы в сегментированных таблицах.
Исправлены ошибки видимости при чтении обновляемых данных в одном запросе.