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 или выше.