E.4. Postgres Pro Standard 9.6.21.1
Дата выпуска: 2021-02-18
E.4.1. Обзор
Этот выпуск основан на PostgreSQL 9.6.21 и Postgres Pro Standard 9.6.20.1. Все усовершенствования, унаследованные от PostgreSQL 9.6.21, перечислены в Замечаниях к выпуску PostgreSQL 9.6.21. Другие важные изменения и улучшения перечислены ниже:
Приложение pg_probackup обновлено до версии 2.4.10. Её основные отличия от ранее поставляемой версии 2.4.2:
При инкрементальном восстановлении с флагом
--force
можно перезаписать содержимое каталога, задаваемого параметромPGDATA
, в случае совпадения системных идентификаторов. Ранее в подобных случаях выдавалась ошибка.Стало возможным восстанавливать или проверять копии, находящиеся в файловой системе «только для чтения».
Объединение копий на месте теперь не поддерживается только при смене формата хранения.
Реализованы разделяемые блокировки копий, что позволяет выполнять проверку и восстановление сразу нескольких копий. Эти блокировки освобождаются при завершении программы.
Передаваемые сегменты WAL теперь добавляются в список файлов копии «на лету» и сбрасываются на диск в конце резервного копирования.
За подробностями обратитесь к документации pg_probackup.
Добавлена утилита pgpro_controldata, показывающая управляющую информацию кластера БД PostgreSQL/Postgres Pro и параметры совместимости кластера и/или сервера.
Добавлена функция
pg_snapshot_any
, позволяющая суперпользователям исследовать повреждённые базы данных. За подробностями обратитесь к Подразделу 9.26.11.
E.4.2. Миграция на версию 9.6.21.1
Процедура установки зависит от версии вашей текущей инсталляции.
Для обновления СУБД с версии Postgres Pro Standard, основанной на предыдущей основной версии PostgreSQL, вы должны установить последний корректирующий выпуск для вашей версии, а затем выполнить выгрузку/восстановление данных, применив pg_dumpall, или воспользоваться утилитой pg_upgrade.
Для обновления с версии Postgres Pro Standard, основанной на этом же основном выпуске PostgreSQL, выгрузка/восстановление данных не требуется.
Встроенные функции numeric_eq
, numeric_ne
, numeric_gt
, numeric_ge
, numeric_lt
и numeric_le
фактически являются герметичными, но они не имели соответствующей пометки в Postgres Pro Standard до версии 9.6.17.1, в результате чего запросы могли выполняться неоптимально. В частности, это отрицательно сказывалось на производительности запросов при использовании политик защиты на уровне строк. В версии 9.6.17.1 это было исправлено для новых инсталляций в результате корректировки исходных данных каталога, но существующие инсталляции сохранят некорректные пометки, пока вы не исправите записи этих функций в pg_proc
. Чтобы их исправить, обновите экземпляр сервера с помощью pg_upgrade либо вручную измените их в существующем кластере, выполнив во всех его базах данных соответствующие команды ALTER FUNCTION
. Например:
ALTER FUNCTION pg_catalog.numeric_eq LEAKPROOF
Так как в Postgres Pro Standard 9.6.12.1 была изменена модель распространения pg_probackup, при переходе с предыдущей версии в Альт Линукс или системе на базе Debian выполните apt dist-upgrade
(или apt-get dist-upgrade
), чтобы корректно обработались все новые зависимости. В Windows для завершения обновления вам нужно будет запустить отдельный инсталлятор pg_probackup.
При обновлении с версии 9.6.8.2 и ниже вы должны выполнить команду REINDEX
для индексов, в которых используются типы mchar
или mvarchar
.
Если вы производите обновление с версии Postgres Pro Standard 9.6.7.1 или ниже, вы должны также воспользоваться скриптом pgpro_upgrade, предоставленным в данном дистрибутиве. Этот скрипт обновляет метаданные для смены формата номера каталога, изменившегося после Postgres Pro Standard 9.6.4.1, а также переименовывает функцию pgpro_build
в pgpro_source_id
. Скрипт pgpro_upgrade
обычно запускается автоматически, но если вы создали базу данных в нестандартном расположении, вы должны запустить его вручную.
Примечание
Если вы запускаете pgpro_upgrade
вручную, вы должны остановить службу postgres. Этот скрипт должен запускать пользователь-владелец базы данных (обычно postgres). При попытке запустить pgpro_upgrade
от имени root произойдёт ошибка. За подробностями обратитесь к описанию pgpro_upgrade.
Примечание
В дистрибутивах Linux с системой пакетов RPM при обновлении с версии 9.6.2.1 или более ранней вы должны переименовать каталог данных pgsql
в pgpro
до запуска скрипта pgpro_upgrade
.
Для перехода с ванильной версии PostgreSQL 9.6.x сначала установите последний корректирующий выпуск для этой версии, а затем выполните выгрузку/восстановление данных, используя pg_dumpall.