E.29. Postgres Pro Enterprise 12.3.1

Дата выпуска: 2020-05-29

E.29.1. Обзор

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

  • Устранено зацикливание планировщика, которое наблюдалось при операциях соединения со множеством условий IN и сопровождалось потреблением всей свободной памяти.

  • Устранена возможность сбоя сервера в случае обращения процесса автоочистки к удалённому вручную пространству имён.

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

  • Ликвидирован дефект в команде SHOW, вследствие которого при включённом пуле соединений могли показываться некорректные значения параметров.

  • Исправлено значение по умолчанию параметра plan_cache_lru_size. Теперь он действительно равен 0 (а не 64, как было ранее), что означает, что количество автоматически подготавливаемых операторов этим параметром не ограничивается. Ограничивается только объём занимаемой ими памяти, и задаёт это ограничение параметр plan_cache_lru_memsize.

  • Устранено некорректное обращение к памяти в коде оптимизации дубликатов в индексах-B-деревьях, вследствие которого могли возникнуть проблемы при восстановлении.

  • Для утилиты pg_rewind добавлен ключ -c/--restore-target-wal, позволяющий автоматически запрашивать недостающие файлы WAL из архива, используя команду restore_command, определённую в конфигурации целевого кластера. Эта функциональность Postgres Pro принята сообществом PostgreSQL и появится в ещё разрабатываемой ванильной версии PostgreSQL 13.

  • Реализована замена нижележащего индекса для первичного ключа и ограничений-исключений с использованием предложения ALTER CONSTRAINT ... USING INDEX команды ALTER TABLE. Ранее эта функциональность поддерживалась только для уникальных ограничений. Помимо этого были улучшены проверки совместимости заменяемых индексов.

  • В CFS теперь можно изменять параметр cfs_gc_threshold в рамках текущего сеанса. Например, можно временно задать для него меньшее значение, если требуется отдельно дефрагментировать отношение, процент мусора в котором меньше глобально установленного предела.

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

  • Добавлен параметр --no-data-checksums для initdb, позволяющий инициализировать кластеры Postgres Pro с отключёнными контрольными суммами.

  • Оптимизирована запись пустых страниц в файлы *.cfm при создании базовых копий.

  • Добавлена поддержка Oracle Linux 8.

  • Добавлена поддержка ОС Альт 8 СП.

  • Добавлена поддержка системы Ubuntu 20.04.

  • Добавлен пакет plpython3 для ОС Rosa Enterprise Linux Server и РОСА «КОБАЛЬТ» (серверная редакция) на платформе РОСА и AlterOS 7.5, где его раньше не было. Теперь он предоставляется для всех поддерживаемых платформ, кроме SLES 11.

  • Обновлено несколько библиотек, поставляемых с Postgres Pro для Windows, до следующих версий: OpenSSL 1.1.1g, libzstd 1.4.4, gettext 0.20.2, libiconv 1.16, libxml2 2.9.9 и libxslt 1.1.32. Библиотека ICU была обновлена с версии 56.1 до 56.2.

  • Расширение PTRACK обновлено до версии 2.1. В этой версии был значительно переработан API. В частности, для включения этой функциональности теперь нужно использовать параметр ptrack.map_size, а не ptrack_map_size. За подробностями обратитесь к документации PTRACK.

  • Обновлено расширение multimaster. В нём появилась функция mtm.check_query(query_text) для проверки согласованности данных на разных узлах кластера. За подробностями обратитесь к Подразделу F.30.4.6.

  • Расширение pgpro_scheduler обновлено до версии 2.6. В эту версию вошёл ряд улучшений, включая полностью переписанную реализацию разбора заданий cron. Кроме того, pgpro_scheduler теперь запускает назначенные задания как только появляется доступный фоновый исполнитель, если в назначенное время свободных исполнителей не оказалось.

  • Расширение pageinspect обновлено до версии 1.6, теперь оно корректно обрабатывает 64-битные идентификаторы транзакций.

  • Обновлено расширение vops; теперь оно предоставляет автоматический способ формирования векторизованного представления данных и обращения к нему. За подробностями обратитесь к Подразделу F.70.5.5.

  • Расширение pg_pathman обновлено до версии 1.5.11. В данной версии устранена ошибка, возникавшая при попытке обращения к дочерним секциям, к которым нет доступа, при том, что к родительской таблице доступ разрешён. Эта проблема могла наблюдаться ранее при использовании pg_pathman с Postgres Pro 11.7.1 или новее.

E.29.2. Миграция на версию 12.3.1

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

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