E.6. Postgres Pro Enterprise 9.6.19.1
Дата выпуска: 2020-08-24
E.6.1. Обзор
Этот выпуск основан на PostgreSQL 9.6.19 и Postgres Pro Enterprise 9.6.18.1. Все усовершенствования, унаследованные от PostgreSQL 9.6.19, описаны в Замечаниях к выпуску PostgreSQL 9.6.19. По сравнению с Postgres Pro Enterprise 9.6.18.1 эта версия также содержит следующие изменения:
- Улучшено расширение rum: - Оптимизирован полнотекстовый поиск в индексе по полю - tsvector, содержащему веса лексем. При выполнении запросов с весами теперь не требуется перепроверять результаты этих запросов по таблице, так что они выполняются гораздо быстрее.
- Устранена ошибка, вследствие которой могли теряться результаты при обработке таких поисковых запросов с использованием оператора отрицания. 
 
- Исправлена ошибка в расширении pgpro_scheduler, приводившая к тому, что функция - schedule.stop()могла не остановить выполняющиеся задания.
- Исправлено именование групп параметров GUC. Ранее было пропущено имя группы параметров - Compressed File System(Сжатая файловая система), вследствие чего сдвигались имена других групп.
- Прекращена поддержка 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: несогласованность в карте диапазонов) - Эта ошибка могла возникать, когда в параллельных транзакциях одновременно выполнялись сброс обобщения зоны страниц и сканирование индекса. 
 
- Приложение pg_probackup обновлено до версии 2.4.2: - Для большей гибкости добавлены новые параметры и флаги команд - delete,- backup,- restore,- archive-pushи- set-backup.
- Добавлена возможность инкрементального восстановления и поддержка инкрементальных цепочек с разными линиями времени. 
- Во время восстановления теперь могут задаваться параметры Postgres Pro - slot_nameи- primary_conninfo.
- Существенно переработаны команды - archive-pushи- archive-get.
- Были улучшены показатели производительности и потребления памяти. 
 - За подробностями обратитесь к документации pg_probackup. 
- Приложение mamonsu для Linux обновлено до версии 2.5.1. Теперь оно базируется на Python 3. Для Windows по-прежнему поставляется версия 2.3.4. 
E.6.2. Миграция на версию 9.6.19.1
Процедура установки зависит от версии вашей текущей инсталляции.
Для перехода с ванильной версии PostgreSQL 9.6.x или Postgres Pro Standard сначала установите последний корректирующий выпуск для этой версии, а затем выполните выгрузку/восстановление данных, используя pg_dumpall. Обязательно уделите внимание особенностям реализации, связанным с 64-битными идентификаторами транзакций. Если вы ранее использовали явные приведения идентификаторов транзакций к 32-битным целым, вы должны заменить их на приведения к типу bigint, так как 64-битные идентификаторы транзакций имеют такой тип.
Встроенные функции numeric_eq, numeric_ne, numeric_gt, numeric_ge, numeric_lt и numeric_le фактически являются герметичными, но они не имели соответствующей пометки в Postgres Pro Enterprise до версии 9.6.17.1, в результате чего запросы могли выполняться неоптимально. В частности, это отрицательно сказывалось на производительности запросов при использовании политик защиты на уровне строк. В версии 9.6.17.1 это было исправлено для новых инсталляций в результате корректировки исходных данных каталога, но существующие инсталляции сохранят некорректные пометки, пока вы не исправите записи этих функций в pg_proc. Чтобы их исправить, обновите экземпляр сервера с помощью pg_upgrade либо вручную измените их в существующем кластере, выполнив во всех его базах данных соответствующие команды ALTER FUNCTION. Например: 
ALTER FUNCTION pg_catalog.numeric_eq LEAKPROOF
Для обновления с версии Postgres Pro Enterprise, основанной на этом же основном выпуске PostgreSQL, выгрузка/восстановление данных не требуется. Обычно достаточно установить новую версию в каталог предыдущей инсталляции. После установки новых исполняемых файлов автоматически запускается скрипт pgpro_upgrade, который проверяет, требуется ли дополнительная настройка, и завершает обновление.
Так как в Postgres Pro Enterprise 9.6.12.1 была изменена модель распространения pg_probackup, при переходе с предыдущей версии в Альт Линукс или системе на базе Debian выполните apt dist-upgrade (или apt-get dist-upgrade), чтобы корректно обработались все новые зависимости. В Windows для завершения обновления вам нужно будет запустить отдельный инсталлятор pg_probackup.
При обновлении с версий 9.6.9.1–9.6.14.1 вы должны выполнить команду REINDEX для индексов GIN, GiST и SP-GiST, чтобы устранить дефекты, которые могли возникнуть в этих версиях при репликации. Кроме того, следует сделать новые резервные копии баз данных, в которых были такие индексы.
При обновлении с версии 9.6.8.2 и ниже вы должны перестроить индексы, в которых используются типы mchar или mvarchar.
При обновлении с версии 9.6.2.1 и ниже вы должны перестроить индексы GiST, построенные по столбцам типа intarray.
При обновлении с версии 9.6.1.2 в дистрибутивах Linux с системой пакетов RPM вы должны переименовать каталог данных pgsql в pgproee до запуска скрипта pgpro_upgrade.
В некоторых дистрибутивах Linux вам может быть предложено запустить pgpro_upgrade вручную. В этом случае вы должны остановить службу postgres. Этот скрипт должен запускать пользователь-владелец базы данных (обычно postgres), а переменная окружения PGDATA должна указывать на каталог, где располагается база данных. При попытке запустить pgpro_upgrade от имени root произойдёт ошибка. Данное действие не требуется выполнять при обновлении с версии 9.6.4.1 или выше.