E.3. Postgres Pro Enterprise 16.1.1 #

Дата выпуска: 2023-12-25

E.3.1. Обзор #

Этот выпуск основан на PostgreSQL 16.1 и включает все новые возможности, появившиеся в PostgreSQL 16, а также исправления ошибок, вошедшие в корректирующий выпуск PostgreSQL 16.1. Подробное описание этих новшеств вы можете найти в замечаниях к выпускам PostgreSQL 16 и PostgreSQL 16.1 соответственно.

Список дополнительных модулей и утилит, добавленных в Postgres Pro Enterprise, а также перечень ключевых видимых пользователям изменений в ядре сервера по сравнению с ванильным PostgreSQL вы можете найти в Разделе 2. Ниже перечислены значимые отличия этой версии от Postgres Pro Enterprise 15.5.1:

  • Реализован механизм встроенной отказоустойчивости, которая достигается за счёт развёртывания кластера biha с физической репликацией, встроенным механизмом аварийного переключения узлов, автоматическим обнаружением сбоя узлов, реагированием и последующим изменением конфигурации кластера. Конфигурация такого кластера включает один выделенный узел-лидер и несколько узлов-последователей, которые могут быть как синхронными, так и асинхронными и управляются расширением bihactl. Новый функционал обеспечивает защиту от сбоев серверов и систем хранения данных и не требует дополнительного внешнего кластерного ПО. Вариант кластера с двумя узлами и одним референтным узлом будет поддерживаться в будущих выпусках. Протокол SSL/TLS канала управления biha в данный момент используется в экспериментальном режиме.

  • Добавлена схема vault, позволяющая защитить конфиденциальные данные от несанкционированного доступа злоумышленников путём назначения отдельной роли, называемой администратором безопасности и управляющей доступом к схеме и её объектам.

  • Добавлены новые предопределённые роли:

    • pg_create_tablespace, позволяющая выполнять команду CREATE TABLESPACE без прав суперпользователя.

    • pg_manage_profiles, позволяющая выполнять команды CREATE PROFILE, ALTER PROFILE и DROP PROFILE без прав суперпользователя.

  • Добавлены системные представления pg_stats_vacuum_tables, pg_stats_vacuum_indexes и pg_stats_vacuum_database, показывающие статистики очистки таблиц, индексов и баз данных соответственно. Ранее эти статистики были доступны в pgpro_stats.

  • Модуль aqo обновлён до версии 2.0, в которую включены следующие основные изменения и усовершенствования:

    • Настройка и использование модуля упрощены. Теперь поведение aqo в основном зависит от трёх параметров конфигурации: aqo.enable, aqo.mode и aqo.advanced, которые соответственно определяют состояние aqo, режим его работы и то, собирается ли статистика изолированно по запросам.

    • При значениях параметров конфигурации по умолчанию устанавливается рекомендуемый основной режим, в котором статистика собирается для узлов плана, а собранные данные машинного обучения используются для исправления погрешностей оценки количества строк для всех запросов, план которых содержит определённый узел плана.

    • Модуль aqo теперь может работать независимо с несколькими базами данных.

    • Чтобы мгновенно отключить/включить aqo на уровне базы данных, теперь достаточно выполнить команду DROP/CREATE EXTENSION.

    • Уменьшено потребление памяти.

  • Приложение pg_probackup обновлено до версии 2.7.0 Enterprise, в которой улучшена производительность, добавлены новые возможности и исправлены некоторые ошибки. Основные изменения перечислены ниже:

    • Слияние инкрементальных резервных копий сделано совместимым с S3: вместо переименования папок используются ссылки (symlink).

    • Добавлен параметр --show-symlinks в команду show для отображения ссылок, полученных в результате слияния инкрементальных резервных копий.

    • Слияние резервных копий теперь выполняется без создания временных локальных файлов.

    • Оптимизирована работа с памятью при восстановлении длинной последовательности инкрементальных резервных копий больших баз данных. Теперь для восстановления БД из нескольких тысяч таблиц и 100 инкрементальных копий требуется почти в три раза меньше памяти.

    • Добавлена возможность указать значения latest и current для параметра --recovery-target-timeline. Кроме того, исправлено поведение параметра --recovery-target при указании для него значения latest.

  • Расширение pg_hint_plan обновлено до версии 1.6.0.

  • Добавлено расширение pgpro_bfile, предоставляющее составной тип bfile и реализующее подобную Oracle технику доступа к внешнему файлу или S3 (Simple Storage Service).

  • Добавлено расширение pgpro_rp, обеспечивающее приоритизацию ресурсов путём назначения плана приоритизации ресурсов определённому сеансу, что может замедлять работу этого сеанса в зависимости от количества процессоров, операций чтения и записи, ресурсов, которые этот сеанс потребляет по сравнению с другими сеансами.

  • Добавлен параметр конфигурации sr_plan.auto_tracking, позволяющий sr_plan автоматически нормализовать и регистрировать запросы, выполняемые с использованием команды EXPLAIN.

  • Расширение utl_http, позволяющее получать доступ к данным в Интернете по протоколу HTTP (HTTP/1.0 и HTTP/1.1), выполняя HTTP-вызовы из SQL и PL/pgSQL.

  • Добавлено расширение utl_smtp, предназначенное для отправки электронных писем по протоколу SMTP из PL/pgSQL.

  • Добавлено расширение utl_mail, предназначенное для управления электронными письмами, включая управление часто используемыми возможностями электронной почты, такими как вложение, копия и скрытая копия.

Примечание

В этом выпуске для подписок игнорируется значение parallel параметра streaming (streaming = parallel) и не используются параллельные процессы применения изменений.

Предупреждение

При использовании новых возможностей Postgres Pro Enterprise 16.1.1 на устаревших операционных системах, таких как РОСА «КОБАЛЬТ» 7.9, Rosa Enterprise Linux Server 7.3, AlterOS 7 или SLES 12, могут возникнуть проблемы, связанные с тем, что эти ОС включают устаревшие версии OpenSSL. Пользователям следует рассмотреть возможность перехода на более новые версии ОС.

E.3.2. Миграция на версию 16 #

Вы можете перейти на Postgres Pro Enterprise/ 16 с той же или предыдущей версии PostgreSQL (которая поддерживается выбранным способом обновления) или Postgres Pro Standard/Postgres Pro Standard Certified, а также с предыдущей версии Postgres Pro Enterprise/Postgres Pro Enterprise Certified. То же самое справедливо для перехода на Postgres Pro Enterprise Certified 16. Способы обновления кластера базы данных описаны в Разделе 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 в текущем каталоге, выполните их для завершения обновления.

При переходе с PostgreSQL или Postgres Pro Standard обязательно уделите внимание особенностям реализации, связанным с 64-битными идентификаторами транзакций. Если вы ранее использовали явные приведения идентификаторов транзакций к 32-битным целым, вы должны заменить их на приведения к типу bigint, так как 64-битные идентификаторы транзакций имеют такой тип.

Примечание

Во избежание конфликтов не используйте пакет postgrespro-ent-16 для установки исполняемых файлов Postgres Pro, а установите вместо него отдельные пакеты компонентов продукта. В этом случае режим автозапуска сервера, если он требуется, нужно будет включить вручную. Подробнее о предоставляемых пакетах и вариантах установки вы можете узнать в Главе 17.

Другие особенности обновления, присущие и ванильной версии PostgreSQL, описаны в Разделе E.6.