E.20. Postgres Pro Enterprise 11.9.1

Дата выпуска: 2020-08-27

E.20.1. Обзор

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

  • Отключение повторного использования паролей теперь корректно работает с аутентификацией SCRAM. Ранее зашифрованный с применением SCRAM пароль использовался повторно, когда такое использование запрещалось.

  • Исправлена ошибка в расширении pgpro_scheduler, приводившая к тому, что функция schedule.stop() могла не остановить выполняющиеся задания.

  • Исправлено именование групп параметров GUC. Ранее было пропущено имя группы параметров Compressed File System (Сжатая файловая система), вследствие чего сдвигались имена других групп.

  • Улучшено расширение rum:

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

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

  • Реализовано удаление временных схем расширения multimaster (mtm_tmp_X_Y), которые могли оставаться после сбоя узла. Тем самым в случае сбоев предотвращается замусоривание каталога подобными потерянными схемами.

  • Ликвидирована процедура восстановления карты CFS, выполняемая при запуске сервера. Она могла вызывать условия гонки и при этом не совершала полезное действие.

  • Оформлена новая версия расширения multimaster для включения функциональности, реализованной в Postgres Pro Enterprise версии 11.8.1. Ранее эта функциональность оставалась недоступной при обновлении Postgres Pro Enterprise.

  • Приложение pg_probackup обновлено до версии 2.4.2:

    • Для большей гибкости добавлены новые параметры и флаги команд delete, backup, restore, archive-push и set-backup.

    • Добавлена возможность инкрементального восстановления и поддержка инкрементальных цепочек с разными линиями времени.

    • Во время восстановления теперь могут задаваться параметры Postgres Pro slot_name и primary_conninfo.

    • Существенно переработаны команды archive-push и archive-get.

    • Были улучшены показатели производительности и потребления памяти.

    За подробностями обратитесь к документации pg_probackup.

  • Прекращена поддержка PTRACK версий ниже 2.0 (1.5 - 1.7) из-за наличия в этих версиях критического дефекта, приводящего к незаметному повреждению копий PTRACK, создаваемых под нагрузкой. API PTRACK 1.x сохранён для обратной совместимости, хотя сама функциональность теперь отсутствует. Копии PTRACK, сделанные ранее, восстанавливать не рекомендуется, но если такая необходимость возникнет, проверьте целостность восстановленного кластера с помощью команды pg_probackup checkdb --amcheck.

  • Добавлен необязательный аргумент tune команды pg-setup initdb. С помощью этого аргумента вы можете выбрать для вашего кластера одну из предопределённых настроенных конфигураций.

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

  • Исправлены дефекты в реализации BRIN, приводившие к следующим ошибкам:

    • «failed to find parent tuple for heap-only tuple ...» (не удалось найти родительский кортеж для неиндексированного кортежа...)

      Эта ошибка могла возникать, когда в параллельных транзакциях одновременно выполнялись функция brin_summarize_new_values() и изменения данных по методу HOT.

    • «corrupted BRIN index: inconsistent range map» (испорченный индекс BRIN: несогласованность в карте диапазонов)

      Эта ошибка могла возникать, когда в параллельных транзакциях одновременно выполнялись сброс обобщения зоны страниц и сканирование индекса.

  • Приложение mamonsu для Linux обновлено до версии 2.5.1. Теперь оно базируется на Python 3. Для Windows по-прежнему поставляется версия 2.3.4.

E.20.2. Миграция на версию 11.9.1

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

Встроенные функции numeric_eq, numeric_ne, numeric_gt, numeric_ge, numeric_lt и numeric_le фактически являются герметичными, но они не имели соответствующей пометки в Postgres Pro Enterprise до версии 11.7.1, в результате чего запросы могли выполняться неоптимально. В частности, это отрицательно сказывалось на производительности запросов при использовании политик защиты на уровне строк. В версии 11.7.1 это было исправлено для новых инсталляций в результате корректировки исходных данных каталога, но существующие инсталляции сохранят некорректные пометки, пока вы не исправите записи этих функций в pg_proc. Чтобы их исправить, обновите экземпляр сервера с помощью pg_upgrade либо вручную измените их в существующем кластере, выполнив во всех его базах данных соответствующие команды ALTER FUNCTION. Например:

ALTER FUNCTION pg_catalog.numeric_eq LEAKPROOF

В версии 11.7.1 также исправлена работа регулярных выражений POSIX и конструкций SIMILAR TO, в которых применялись классы символов для правил сортировки ICU. Вследствие этого, возможно, стоит перепроверить объекты, использующие эти выражения.

Начиная с Postgres Pro Enterprise 11.6.1, обновление версии ICU не препятствует запуску сервера. Перед подключением к базе данных, в которой основное правило сортировки использует ICU, Postgres Pro сравнивает версию этого правила сортировки с версией, предоставляемой библиотекой ICU, и выдаёт предупреждения в случае несовпадения версий; если вы полагаете, что изменение версии правила сортировки может повлиять на порядок сортировки ваших данных, перестройте объекты, использующие основное правило сортировки. Чтобы убрать эти предупреждения, вы можете выполнить команду ALTER COLLATION "default" REFRESH VERSION, как описано в ALTER COLLATION.

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