E.3. Postgres Pro Enterprise 12.18.1

Дата выпуска: 2024-02-20

E.3.1. Обзор

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

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

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

  • Оптимизировано потребление памяти при оценке избирательности для каждого элемента массива по сравнению с ванильными версиями PostgreSQL.

  • Устранены условия гонки между рабочим процессом автоочистки и серверными процессами при удалении потерянных таблиц, приводившие к ошибкам «cache lookup failed for relation» (ошибка поиска в кеше для отношения). Теперь при удалении потерянных таблиц процесс автоочистки блокирует пространства имён.

  • Устранена проблема, которая могла возникать во время установки сервера Postgres Pro в системах на базе Debian, включённых в домен с пользователем postgres.

  • Исправлен вывод скрипта pg-setup, в котором при инициализации кластера ошибочно отображалась локаль из переменной окружения LANG. Теперь сообщение о локали на данном этапе не отображается.

  • Устранена проблема, которая могла возникать в случае сбоя рабочего процесса сборки мусора CFS. Раньше для продолжения работы требовался перезапуск сервера, поскольку рабочий процесс не перезапускался автоматически. Теперь рабочий процесс перезапускается, если был недоступен более 10 секунд.

  • Сокращено время жизни временных файлов CFS, которые образуются при работе сборщика мусора или в ходе выполнения операции VACUUM FULL.

  • Прекращена поддержка Rosa Enterprise Linux Server 7.

  • Прекращена поддержка ОС РОСА «КОБАЛЬТ» (серверная редакция) на платформе РОСА 7.

  • Модуль orafce обновлён до версии 4.9.2.

  • pg_filedump обновлён до версии 16.1.

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

    • Оптимизировано использование памяти при резервном копировании в удалённом режиме.

    • Устранена проблема, возникавшая во время инкрементального копирования, из-за которой ещё не скопированная таблица удалялась из CFS.

    • Исправлен порядок обработки файлов WAL командой archive-push в случаях, когда количество файлов WAL превышает указанное значение --batch-size.

    • Исправлена ошибка «WAL segment is absent» (сегмент WAL отсутствует), которая могла возникнуть, если размер регистрируемой записи WAL превышал размер сегмента WAL.

    • Устранена ошибка, возникавшая при создании версионированного бакета в VK Cloud.

    • Устранена ошибка сегментации, возникавшая во время выполнения команды merge в S3.

  • Утилита pg_repack обновлена до версии 1.5.0.

  • Обновлено расширение pg_variables, которое теперь предоставляет функциональность итератора для любых коллекций, а также функции для работы с общими переменными-коллекциями. Эти функции позволяют получить доступ к элементам коллекции по ключу, который может иметь целочисленный или текстовый тип. Эти улучшения облегчают миграцию кода Oracle, обрабатывающего коллекции.

  • Расширение pgpro_stats обновлено до версии 1.7, в которой улучшена производительность и исправлены некоторые ошибки:

    • Реализация в расширении pgpro_stats чтения файла «текстов запросов» блоками размером не больше 1 ГБ (подобно аналогичной реализации в pg_stat_statements). Такие большие файлы с текстами запросов встречаются крайне редко, но в случае их наличия ранее происходил сбой в 64-битной ОС Windows (в которой один запрос на чтение файла не может прочитать больше 2 ГБ).

    • Добавлена обратная совместимость функций pgpro_stats_statements и pgpro_stats_totals. Теперь поддерживаются случаи, когда более новая версия загружаемого модуля pgpro_stats используется со старым объявлением SQL функций. Ранее подобные случаи вызывали крах сервера.

    • Устранена проблема, из-за которой не выводились статистики очистки баз данных в представлении pgpro_stats_vacuum_database.

  • Модуль pgpro_pwr обновлён до версии 4.4, в которой добавлена поддержка pgpro_stats 1.7, и в отчёты включены новые интерактивные возможности и фильтрация на основе подстроки.

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

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

Если вы хотите сохранить существующее представление карт видимости в pageinspect при миграции на текущую основную версию Postgres Pro Enterprise с использованием pg_upgrade, выполните команду VACUUM, прежде чем начинать обновление.

Настоятельно не рекомендуется обновлять кластер с 32-битными идентификаторами транзакций на версии Postgres Pro Enterprise ниже 12.16.2 при наличии мультитранзакций в базе данных, поскольку это может вызвать повреждение данных.

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

Если вы ранее мигрировали с Postgres Pro Enterprise версии 11 или 10, обязательно перестройте индексы-B-деревья (за исключением уникальных, покрывающих и системных индексов). Перестроить такие индексы также рекомендуется, если вы мигрируете с указанных версий на текущую.

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

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