E.23. Postgres Pro Enterprise 10.7.1

Дата выпуска: 2019-03-26

E.23.1. Обзор

Этот выпуск основан на PostgreSQL 10.7 и Postgres Pro Enterprise 10.6.2. Все усовершенствования, унаследованные от PostgreSQL 10.7, перечислены в Замечаниях к выпуску PostgreSQL 10.7. Другие важные изменения и улучшения перечислены ниже:

  • Устранены проблемы, которые могли возникать при использовании недавно созданных индексов GIN, GiST и SP-GiST. Ранее метастраница таких индексов не копировалась на ведомый сервер в ходе операций CREATE INDEX или REINDEX, в результате чего возникала ошибка, если ведомый сервер успевал обратиться к индексу раньше, чем в метаданных происходили какие-либо изменения.

  • Исправлена ошибка при обработке запросов с множеством предложений OR, приводившая к дублированию результатов и нарушению порядка сортировки.

  • Устранён дефект, провоцирующий сбой сервера при использовании нестрогих агрегатных функций.

  • В реализацию автономных транзакций внесено множество усовершенствований:

    • Синтаксис SQL стал более согласованным: ключевое слово AUTONOMOUS теперь можно использовать с транзакционными операторами START, COMMIT/END и ROLLBACK/ABORT. Ранее это слово допускалось только с BEGIN.

    • Исправлены разнообразные ошибки, в результате чего автономные транзакции стали работать стабильнее.

  • Изменена модель распространения утилиты pg_probackup:

    • В Linux программа pg_probackup теперь предоставляется в пакете pg-probackup-ent-10. В Альт Линукс и ОС на базе Debian для обновления Postgres Pro Enterprise с версии 10.6.2 или ниже выполните apt dist-upgrade (или apt-get dist-upgrade), чтобы корректно обработались все новые зависимости пакетов.

    • Для Windows теперь предоставляется отдельный инсталлятор pg_probackup. Прежде чем устанавливать pg_probackup, вы должны установить основные компоненты текущей версии Postgres Pro.

  • В интерактивном инсталляторе Postgres Pro для Windows появились новые возможности. Теперь вы можете:

    • Выбрать в качестве провайдера основного правила сортировки icu или libc. Ранее в отсутствие такого выбора в Postgres Pro Enterprise всегда выбирался провайдер icu.

    • Выбрать пользователя, который будет запускать службу Postgres Pro. По умолчанию служба Postgres Pro запускается от имени пользователя NT AUTHORITY\NetworkService.

  • Началось распространение pg_hint_plan в виде индивидуального дополнения:

    • Для Linux pg_hint_plan теперь предоставляется в пакете pg-hint-plan-ent-10.

    • Для Windows pg_hint_plan теперь устанавливается отдельным инсталлятором, который нужно запускать после установки ключевых компонентов текущей версии Postgres Pro.

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

  • В SUSE Linux Enterprise Server и системах на базе RHEL несколько утилит перемещены в другие пакеты для согласованности с другими дистрибутивами Linux: pg_receivewal и pg_recvlogical теперь содержатся в пакете postgrespro-ent-10-client, а pg_rewind, pg_waldump и pg_upgrade — в пакете postgrespro-ent-10-server.

  • Интегрировано исправление, позволяющее избежать условий гонки в процессе dsm_attach() при повторном использовании указателей DSM; в ванильном PostgreSQL это исправление запланировано только в будущих выпусках. Ожидается, что в результате разрешатся проблемы, при которых сервер выдаёт следующее сообщение об ошибке: ERROR: dsa_area could not attach to segment (ОШИБКА: dsa_area не может получить доступ к сегменту).

  • Исправлена работа pg_upgrade с ограничениями доменов, зависящими от правил сортировки. Такие ограничения теперь проверяются в процессе обновления, тогда как в предыдущих версиях Postgres Pro они всегда помечались в новом кластере как непроверенные.

  • Налажена работа pg_dump и pg_dumpall с базами данных Postgres Pro Standard.

  • Исправлен скрипт pg-setup; теперь с ключом -D он позволяет инициализировать кластер в нестандартном расположении.

  • Утилита pg_probackup теперь корректно отслеживает в режиме PTRACK изменения в индексах rum и bloom.

  • Устранено снижение производительности при сканировании только индекса, когда индекс построен по множеству полей.

  • Прекращена поддержка систем Альт Линукс СПТ 6.0 и Windows 7 SP1.

  • Модуль pg_pathman обновлён до версии 1.5.5. Эта версия по сравнению с 1.5.2, поставляемой в предыдущем выпуске Postgres Pro, включает следующие усовершенствования:

    • Усовершенствованы скрипты обновления pg_pathman во избежание ошибок при миграции с основной версии 1.4 на 1.5 из-за различного числа атрибутов pg_config в этих версиях.

    • Повышена стабильность pg_pathman:

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

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

  • Модуль pg_variables обновлён до версии 1.2:

    • Добавлена поддержка переменных-массивов.

    • Повышена стабильность модуля.

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

    (См. Раздел F.50.)

E.23.2. Миграция на версию 10.7.1

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

При обновлении с версии 10.6.2 и ниже вы должны выполнить команду REINDEX для индексов GIN, GiST и SP-GiST, чтобы устранить дефекты, которые могли возникнуть в старых версиях при репликации. Кроме того, следует сделать новые резервные копии баз данных, в которых были такие индексы.

При обновлении с версии 10.3.3 и ниже вы должны выполнить команду REINDEX для индексов GiST, построенных по столбцам типа intarray, а также для индексов, в которых используются типы mchar или mvarchar.

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