E.1. Postgres Pro Enterprise 17.2.1 #
Дата выпуска: 2024-12-27
E.1.1. Обзор #
Этот выпуск основан на PostgreSQL 17.2 и включает все новые возможности, появившиеся в PostgreSQL 17, а также исправления ошибок, вошедшие в корректирующий выпуск PostgreSQL 17.2. Подробное описание этих новшеств вы можете найти в замечаниях к выпускам PostgreSQL 17 и PostgreSQL 17.2 соответственно.
Список дополнительных модулей и утилит, добавленных в Postgres Pro Enterprise, а также перечень ключевых видимых пользователям изменений в ядре сервера по сравнению с ванильным PostgreSQL вы можете найти в Разделе 2. Ниже перечислены значимые отличия этой версии от Postgres Pro Enterprise 16.6.1:
Добавлены подкоманды
SPLIT PARTITION
иMERGE PARTITIONS
в командуALTER TABLE
. Подкоманды позволяют улучшить управление секционированными таблицами: первая разделяет одну секцию на несколько, вторая объединяет несколько секций в одну.Добавлена функция
pg_backend_get_config_value
, которая позволяет запрашивать текущее значение параметра для процесса с указанным PID.Добавлен параметр конфигурации enable_extra_transformations, который включает дополнительные преобразования дерева запросов.
Оптимизирована работа CFS: повышена надёжность работы сборщика мусора, добавлен автоматический перезапуск рабочих процессов CFS в случае сбоя.
Функциональность перепланирования запросов в реальном времени переименована в адаптивное выполнение запросов (AQE).
Унаследована из PostgreSQL реализация регулирования размеров SLRU-кешей. Соответствующий параметр
slru_buffers_size_scale
удалён. Вместо него следует использовать следующие параметры: commit_timestamp_buffers, multixact_member_buffers, multixact_offset_buffers, notify_buffers, serializable_buffers, subtransaction_buffers и transaction_buffers.Добавлено расширение pgpro_autopart, обеспечивающее динамическое создание секций с помощью триггеров для представлений секционированных таблиц.
Добавлено расширение pgpro_ilm, позволяющее переносить редко используемые отношения в более дешёвое хранилище. Эта функциональность аналогична управлению жизненным циклом информации (information lifecycle management, ILM) в Oracle. На данный момент поддерживается только перемещение обычных таблиц и секций секционированных таблиц.
Добавлено расширение pgpro_multiplan, включающее полную функциональность расширения sr_plan, а также новую функциональность, например
plan_hash
замороженного плана для дальнейшего использования. Расширение sr_plan было удалено из Postgres Pro Enterprise.Добавлено расширение pgpro_queue, предоставляющее управление очередями сообщений непосредственно в базе данных.
Добавлено расширение pgpro_usage, которое предоставляет статистику доступа к отношениям и вызовов функций в разрезе пользователей. На основе этой информации строится отчёт о том, какие из выданных прав эти пользователи используют, а какие потенциально являются лишними.
Реализовано расширение proxima, объединяющее функциональность прокси-сервера и пула соединений.
Обновлено расширение apache_age для поддержки Postgres Pro 17. В частности, добавлено сообщение об ошибке, поясняющее, что использование фильтра свойств в качестве параметра в предложении
MATCH
подготовленных операторов поддерживается только для оператора вложенностиagtype
(@>
), но не для операторов методов доступа.Модуль aqo обновлён до версии 3.0, в которую включены следующие основные изменения и усовершенствования:
Реализован режим «песочницы», позволяющий работать в изолированной среде, не затрагивая основную базу знаний aqo. Этот режим можно включить как на ведущем, так и на резервном узле, установив для параметра aqo.sandbox значение
on
.Добавлен механизм обучения, при котором aqo корректирует оценку количества строк планировщика с помощью собственных предсказаний. Его можно включить с помощью параметра aqo.delta_rows.
Улучшена функциональность обработчиков BiHA:
Добавлены типы обработчиков
NODE_ADDED
,NODE_REMOVED
иLEADER_STATE_IS_RW
.Обновлён тип
TERM_CHANGED
.Добавлена роль пользователя
biha_callbacks_user
в качестве пользователя по умолчанию для выполнения функций-обработчиков.
Приложение mamonsu обновлено до версии 3.5.10.
Расширение multimaster обновлено. Была добавлена возможность указать режим синхронизации для повторно подключившихся узлов с помощью параметра конфигурации
multimaster.catchup_algorithm
. Добавлена поддержка режима синхронизацииparallel
, при котором неконфликтующие реплицируемые транзакции применяются параллельно.Расширение pg_hint_plan обновлено до версии 1.7.0, в которой изменён формат таблицы указаний: теперь требуется уникальный
query_id
вместо текста параметризованного запроса.Приложение pg_probackup обновлено до версии 2.8.6 Enterprise.
Модуль pgpro_pwr обновлён до версии 4.8, в которой добавлены новые возможности и исправлены некоторые ошибки. Основные изменения перечислены ниже:
Добавлено отслеживание версий расширений, установленных в кластере, в новом разделе отчёта.
Добавлена возможность скрыть данные для определённых баз данных в отчёте. Для этого в функции формирования отчёта добавлен новый параметр, принимающий массив исключаемых баз данных.
Обновлён модуль pg_variables. Команда
DISCARD ALL
теперь очищает все пакеты и переменные в pg_variables. Использовать расширение с proxima можно посредством принудительного динамического выделенного сеанса.Функции
pgpro_version
,pgpro_edition
иpgpro_build
признаны устаревшими и будут удалены в будущих выпусках. Используйте вместо них параметры конфигурации pgpro_version, pgpro_edition и pgpro_build.Удалена возможность создания конструкций с вызовом функции
JSON_EXISTS()
с предложениемRETURNING
, которое в более ранних версиях позволяло возвращать значения любого типа. Этот синтаксис не поддерживается стандартом SQL/JSON, согласно которому предикатJSON_EXISTS()
должен возвращать только TRUE, FALSE или UNKNOWN.Удалён признанный устаревшим встроенный пул соединений. Вместо него рекомендуется использовать новое расширение proxima.
Удалено признанное устаревшим расширение pg_pathman.
Прекращена поддержка AlterOS 7, Альт 8.2 СП, Альт 9, Debian 10, SLES 12.
E.1.2. Миграция на версию 17 #
Вы можете перейти на Postgres Pro Enterprise 17 с той же или предыдущей версии PostgreSQL (которая поддерживается выбранным способом обновления) или Postgres Pro Standard/Postgres Pro Standard Certified, а также с предыдущей версии Postgres Pro Enterprise/Postgres Pro Enterprise Certified. То же самое справедливо для перехода на Postgres Pro Enterprise Certified 17. Способы обновления кластера базы данных описаны в Разделе 18.6. Если у вас возникнут проблемы при переходе на новую версию, обратитесь в службу поддержки Postgres Pro Enterprise. Обратный переход не поддерживается. Обратите внимание, что переход с Postgres Pro Enterprise на Postgres Pro Enterprise Certified той же основной версии (или наоборот) — это обновление на совместимую версию Postgres Pro (за подробным описанием обратитесь к Разделу 18.6).
Для перехода с PostgreSQL, Postgres Pro Standard или выпуска Postgres Pro Enterprise, основанного на предыдущей основной версии PostgreSQL, сначала установите его последний корректирующий выпуск, а затем выполните выгрузку/восстановление данных, применив pg_dumpall, или воспользуйтесь pg_upgrade.
Если вы решите использовать pg_upgrade, важно инициализировать новый кластер баз данных с совместимыми параметрами. В частности, обратите внимание на характеристику контрольных сумм в кластере, который вы будете обновлять. Если pg_upgrade создаст какие-либо скрипты SQL в текущем каталоге, выполните их для завершения обновления.
За инструкциями по миграции BiHA-кластера на версию 17 обратитесь к разделу Миграция BiHA-кластера на версию 17.2.
При переходе с PostgreSQL или Postgres Pro Standard обязательно уделите внимание особенностям реализации, связанным с 64-битными идентификаторами транзакций. Если вы ранее использовали явные приведения идентификаторов транзакций к 32-битным целым, вы должны заменить их на приведения к типу bigint
, так как 64-битные идентификаторы транзакций имеют такой тип.
Примечание
Во избежание конфликтов не используйте пакет postgrespro-ent-17
для установки исполняемых файлов Postgres Pro, а установите вместо него отдельные пакеты компонентов продукта. В этом случае режим автозапуска сервера, если он требуется, нужно будет включить вручную. Подробнее о предоставляемых пакетах и вариантах установки вы можете узнать в Главе 17.
Другие особенности обновления, присущие и ванильной версии PostgreSQL, описаны в Разделе E.4.