E.5. Postgres Pro Enterprise 17.2.1 #
Дата выпуска: 2024-12-27
E.5.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, при котором неконфликтующие реплицируемые транзакции применяются параллельно.
- Добавлена поддержка - COPYв модуль online_analyze.
- Расширение 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.5.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.
При переходе с PostgreSQL или Postgres Pro Standard обязательно уделите внимание особенностям реализации, связанным с 64-битными идентификаторами транзакций. Если вы ранее использовали явные приведения идентификаторов транзакций к 32-битным целым, вы должны заменить их на приведения к типу bigint, так как 64-битные идентификаторы транзакций имеют такой тип.
Примечание
Во избежание конфликтов не используйте пакет postgrespro-ent-17 для установки исполняемых файлов Postgres Pro, а установите вместо него отдельные пакеты компонентов продукта. В этом случае режим автозапуска сервера, если он требуется, нужно будет включить вручную. Подробнее о предоставляемых пакетах и вариантах установки вы можете узнать в Главе 17.
Другие особенности обновления, присущие и ванильной версии PostgreSQL, описаны в Разделе E.12.