E.25. Postgres Pro Enterprise 9.6.6.1
Дата выпуска: 2017-11-15
E.25.1. Обзор
Этот выпуск основан на PostgreSQL 9.6.6 и Postgres Pro Enterprise 9.6.5.2. Все усовершенствования, унаследованные от PostgreSQL 9.6.6, описаны в Замечаниях к выпуску PostgreSQL 9.6.6. По сравнению с Postgres Pro Enterprise 9.6.5.2 эта версия также содержит следующие изменения:
Улучшено расширение multimaster. В частности, внесены следующие изменения:
Добавлено новое расширение (referee) для управления состоянием кворума. Используя это расширение, вы можете организовать отдельный узел-рефери для признания кворума в подмножестве узлов, состоящем ровно из половины узлов кластера. За подробностями обратитесь к Подразделу F.31.3.3.1.
Добавлен новый параметр для выбора главного узла в кластере с двумя узлами. Теперь вы можете выбрать узел, который будет работать даже в отсутствие кворума. За подробностями обратитесь к Подразделу F.31.3.3.2.
Модуль pg_pathman обновлён до версии 1.4.8. (См. pg_pathman и Подраздел F.39.1.1.) Эта версия по сравнению с 1.4.3 включает следующие усовершенствования:
Улучшены механизмы сброса кеша.
Отключена команда
COPY
. Вместо неё используйтесекционированная_таблица
TOCOPY (SELECT * FROM
.секционированная_таблица
) TOИсправлена работа триггеров
INSTEAD OF
с представлениями, построенными по секционированным таблицам.Команда
ALTER TABLE
теперь также переименовывает последовательности с автоматически сгенерированными именами.секционированная_таблица
RENAME TOОтключены некоторые опасные оптимизации команд
SELECT ... FOR SHARE/UPDATE
для PostgreSQL 9.5.Улучшена обработка ошибок в фоновом процессе секционирования.
Запрещено выполнение запросов
DELETE FROM
исекционированная_таблица_1
USINGсекционированная_таблица_2
...UPDATE
, если такие запросы затрагивают несколько секций таблицысекционированная_таблица_1
FROMсекционированная_таблица_2
...секционированная_таблица_1
.Исправлена ошибка, приводящая к сбоям при выполнении
RESET ALL
.Исправлена обработка условий
WHERE
, указывающих на промежутки между секциями.Восстановлена совместимость с pg_repack.
Полный список изменений можно найти на вики-странице pg_pathman.
Утилита pg_probackup обновлена до версии 2.0.11, в которой появились новые возможности:
Правильно обрабатывается прерывание при вводе пароля.
Добавлена проверка, запрещающая пустые пароли.
Файлы, не изменявшиеся со времени предыдущего копирования, не включаются в следующую инкрементальную копию.
В метаданные резервной копии теперь добавляется версия базы данных.
Другие разнообразные исправления ошибок.
E.25.2. Миграция на версию 9.6.6.1
Процедура установки зависит от версии вашей текущей инсталляции.
Для обновления с версии Postgres Pro Enterprise, основанной на этом же основном выпуске PostgreSQL, выгрузка/восстановление данных не требуется. Но вместо pg_upgrade
вы должны использовать скрипт pgpro_upgrade
, входящий в состав этого дистрибутивного набора. Этот скрипт обновляет метаданные как требуется в связи с изменением номера каталога, произошедшим в Postgres Pro Enterprise 9.6.4.1, а также переименованием функции pgpro_build
в pgpro_source_id
. Если вы обновляете инсталляцию Postgres Pro Enterprise, используя бинарный пакет, скрипт pgpro_upgrade
запускается автоматически либо вам предлагается запустить его вручную.
Важно
Если вы запускаете pgpro_upgrade
вручную, вы должны остановить службу postgres. Этот скрипт должен запускать пользователь-владелец базы данных (обычно postgres), а переменная окружения PGDATA должна указывать на каталог, где располагается база данных. При попытке запустить pgpro_upgrade
от имени root произойдёт ошибка.
При обновлении с версии 9.6.2.1 и ниже вы должны перестроить индексы GiST, построенные по столбцам типа intarray
.
Примечание
В дистрибутивах Linux с системой пакетов RPM при обновлении с версии 9.6.1.2 или более ранней вы должны переименовать каталог данных pgsql
в pgproee
до запуска скрипта pgpro_upgrade
script.
Для перехода с ванильной версии PostgreSQL 9.6.x или Postgres Pro сначала установите последний корректирующий выпуск для этой версии, а затем выполните выгрузку/восстановление данных, используя pg_dumpall.