E.16. Postgres Pro Enterprise 13.5.1

Дата выпуска: 2021-12-27

E.16.1. Обзор

Этот выпуск основан на PostgreSQL 13.5 и Postgres Pro Enterprise 13.4.1. Все изменения, унаследованные от PostgreSQL 13.5, описаны в Замечаниях к выпуску PostgreSQL 13.5. По сравнению с Postgres Pro Enterprise 13.4.1 эта версия также содержит следующие изменения:

  • Приложение pg_probackup обновлено до версии 2.5.4, в которой устранены следующие проблемы:

    • Одна из проблем была связана с поведением catchup в режимах DELTA и PTRACK. Она могла проявляться, когда использовалось удалённое подключение через SSH и в параметрах --destination-pgdata и --source-pgdata задавался одинаковый путь, и вызывала повреждение исходного экземпляра (как минимум удалялись файлы global/pg_control, global/pg_filenode.map и base/*/pg_filenode.map); в результате выводилось сообщение вида «Could not open file "/pgwal/test/global/pg_control" for reading: No such file or directory» («Не удалось открыть для чтения файл "/pgwal/test/global/pg_control": нет такого файла или каталога»).

    • Другая проблема могла возникнуть, когда исходная БД не находилась на линии времени 1 и целевая не отставала от исходной: probackup проверял целостность истории линии времени catchup и выводил сообщение об ошибке «Destination is not in source timeline history» (Целевого состояния нет в истории исходной линии времени).

    • Ещё одна проблема касалась архивирования WAL из каталога за пределами каталога данных. Ранее многопоточная и пакетная оптимизации команды archive-push препятствовали такому архивированию; теперь можно архивировать WAL из любого каталога, но если он находится за пределами каталога данных, многопоточная и пакетная оптимизации автоматически отключаются.

  • Устранена утечка памяти в процессе postmaster. Ранее при каждом подключении терялся небольшой объём памяти.

  • Улучшена производительность сканирования только индекса при обработке больших таблиц, благодаря увеличению размера кешируемой карты видимости. Теперь такие узлы планы могут выполняться в разы быстрее с таблицами больше 256 МБ.

  • В pg_dump исправлена ошибка при обработке статистики по 64-битным идентификаторам транзакций, что важно при обновлении Postgres Pro Enterprise с помощью pg_upgrade. Ранее значения более 232 в этой статистике передавались некорректно, что приводило к запуску автоочистки для предотвращения зацикливания идентификаторов транзакций.

  • Устранены две проблемы, возникавшие при обновлении кластера Postgres Pro Enterprise 9.6 до текущей основной версии с использованием pg_upgrade. Ранее преобразование карты свободного места для таблиц размером более 4 ТБ могло проходить некорректно, а также мог произойти сбой при обработке карты свободного места для таблицы очень большого размера.

  • Прекращена поддержка расширения sr_plan.

  • Модуль mamonsu обновлён до версии 3.1.0. Основные изменения перечислены ниже:

    • У команды bootstrap появилась новая возможность. Благодаря ей, если параметр -dbname не указан явно, он автоматически примет значение, соответствующее имени базы данных, которое указано в разделе [postgres] файла конфигурации mamonsu.

    • Исправлена критическая проблема, которая могла возникнуть при пропуске шага bootstrap. В этом случае, хотя пользователь мог работать с mamonsu с правами суперпользователя, специальная схема mamonsu не создавалась, но после создания вспомогательного расширения pg_buffercache в любой другой схеме запуск mamonsu приводил к ошибкам «ERROR: relation "mamonsu.pg_buffercache" does not exist» (ОШИБКА: отношение "mamonsu.pg_buffercache" не существует).

  • Добавлена поддержка ОС Альт Линукс 10.

  • Запрещены обращения к временным пространствам имён из автономных транзакций для обеспечения предсказуемого поведения.

  • Добавлена поддержка автоподготовки операторов, отправляемых по расширенному протоколу запросов. Для управления автоподготовкой на уровне протоколов был добавлен параметр autoprepare_for_protocol.

  • Минимальные поддерживаемые версии Windows повышены до Windows 10 и Windows Server 2012 R2.

  • В pg_dumpall устранена возможность использования небезопасного пути поиска.

  • Обновлено расширение pgpro_pwr. Основные улучшения новой версии:

    • В отчёт добавлен раздел «Load distribution» (Распределение нагрузки), в котором показывается, как распределена нагрузка по сильно загруженным объектам, таким как базы данных, приложения, узлы или пользователи, в разрезе ресурсов (общее время или количество записанных общих блоков и т. п.), в виде линейчатых диаграмм.

    • Добавлены таблицы отчётов «Session statistics by database» (Статистика сеансов по базам данных) и «WAL statistics» (Статистика WAL) на основании новых представлений и полей, появившихся в Postgres Pro 14.

  • Оператор WAITLSN признан устаревшим.

  • В CFS задействована функциональность разреженных файлов в Windows, благодаря чему оптимизируется размер файлов *.cfm на диске (до 1 МБ для каждого файла).

E.16.2. Миграция на версию 13.5.1

Если вы производите обновление выпуска Postgres Pro Enterprise, базирующегося на той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.

Если вы ранее мигрировали на Postgres Pro Enterprise версии 13.3.1 или ниже, обязательно перестройте индексы GIN, выполнив команду REINDEX.

Если вы используете PTRACK в процедуре резервного копирования, реализуемой c помощью утилиты pg_probackup, и обновляетесь с Postgres Pro Enterprise версии 13.2.2 или ниже, сделайте полную резервную копию базы данных после обновления.

Если в вашей инсталляции Postgres Pro Enterprise 13.2.1 имеются сжатые табличные пространства, созданные без явного выбора алгоритма pglz, произведите обновление следующим образом. До обновления выгрузите полный дамп, используя pg_dumpall. Обновите Postgres Pro Enterprise, пересоздайте кластер баз данных и восстановите все данные из дампа. Затем вы можете создать табличные пространства CFS по прежней схеме.

Если вы уже обновили инсталляцию Postgres Pro Enterprise 13.2.1 с табличными пространствами CFS и потеряли доступ к сжатым данным, обратитесь к службе поддержки.

Для перехода с PostgreSQL, а также с выпуска Postgres Pro Standard или Postgres Pro Enterprise, базирующегося на предыдущей основной версии PostgreSQL, обратитесь к инструкциям по миграции на версию 13.