E.2. Postgres Pro Enterprise 13.15.1

Дата выпуска: 2024-05-24

E.2.1. Обзор

Этот выпуск основан на PostgreSQL 13.15 и Postgres Pro Enterprise 13.14.3. Все изменения, унаследованные от PostgreSQL 13.15, описаны в Замечаниях к выпуску PostgreSQL 13.15. По сравнению с Postgres Pro Enterprise 13.14.3 эта версия также содержит следующие изменения:

  • Отключён тайм-аут запуска системы: значение параметра TimeoutSec в systemd теперь по умолчанию равно 0. Ранее большие БД могли не успеть запуститься за указанное в параметре время.

  • Понижен уровень протоколирования во время создания указанной точки восстановления во время тайм-аута между контрольными точками только для неактивных баз. Это позволяет удалить из журнала лишние сообщения.

  • Улучшена производительность подсистем поверх SLRU. Внесены улучшения в механизм блокировок LWLock, причём изменён способ блокировки для различных сегментов SLRU, так что каждый сегмент использует отдельную блокировку, за счёт чего улучшена масштабируемость. Кроме того, для реализации SLRU внедрена новая модель распараллеливания с использованием атомарных операций чтения и записи.

  • Добавлен параметр конфигурации cfs_log_verbose, который управляет уровнем детализации сообщений CFS о дефрагментации в журнале. Это позволяет уменьшить количество сообщений CFS в журнале.

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

  • Устранена проблема, приводившая к ошибке «cache lookup failed for collation 128» (ошибка поиска правила сортировки 128 в кеше). Теперь для дополнительных столбцов индекса INCLUDE правила сортировки игнорируются.

  • Устранены две ошибки в планировщике. Первая была связана с дублированием выражений и в некоторых случаях приводила к занижению оценки избирательности и стоимости, из-за чего выбирался неоптимальный план. Вторая ошибка заключалась в завышенной оценке избирательности для узла AppendOr из-за завышения оценки избирательности подузлов, что приводило к завышению оценки стоимости плана.

  • Исправлена проблема, из-за которой после выполнения команды ALTER PUBLICATION pub ADD TABLE tab некоторые данные не передавались подписчику логической репликации. Основная причина проблемы заключалась в недостаточной взаимоблокировке между ALTER PUBLICATION и созданием снимка.

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

  • Добавлена поддержка ОС Astra Linux 1.8; поддержка ОС Astra Linux «Орёл» 2.12 и Astra Linux «Смоленск» 1.6 прекращена.

  • Добавлена поддержка РЕД ОС МУРОМ 8 и прекращена поддержка РЕД ОС МУРОМ 7.2.

  • Добавлена поддержка ОС Ubuntu 24.04.

  • Модуль mamonsu обновлён до версии 3.5.8, в которой улучшена производительность и исправлены некоторые ошибки. Основные изменения перечислены ниже:

    • Добавлена поддержка API Zabbix 6.4: обработка устаревших параметров для запросов аутентификации.

    • Исключено кеширование метрики pgsql.connections[max_connections].

    • Обновлены правила ротации журналов по умолчанию.

    • Выполнена подготовка для поддержки Python 3.12.

    • Изменены названия метрик модуля pg_locks. Имейте в виду, что эти изменения могут нарушить работу пользовательских триггеров и функций обработки, использующих параметр item.name.

    • Исправлено несоответствие типов для pgpro_stats и pg_wait_sampling.

    • Исправлена ошибка в правах роли mamonsu, созданной с помощью bootstrap.

  • Модуль orafce обновлён до версии 4.10.0.

  • Приложение pg_probackup обновлено до версии 2.8.0 Enterprise, в которой улучшена производительность, добавлены новые возможности и исправлены некоторые ошибки. Основные изменения перечислены ниже:

    • Добавлена возможность ограничить скорость записи на диск с помощью параметра --write-rate-limit==bitrate (Mbps, Gbps).

    • Уменьшено потребление памяти при восстановлении длинных последовательностей инкрементальных копий в среднем в два раза.

    • Добавлена проверка командой checkdb контрольной суммы для файлов CFS.

    • Добавлена возможность проверять только архив WAL.

    • Расширено действие параметра --dry-run для всех команд pg_probackup.

    • По умолчанию при резервном копировании в режиме STREAM теперь создаётся временный слот, если не указано иное.

    • Алгоритм сжатия по умолчанию изменён на zstd. Если zstd не поддерживается системой, будет выбран алгоритм lz4. Параметр --compress теперь задаёт значения по умолчанию для --compress-level и --compress-algorithm.

    • Добавлена возможность указывать несколько узлов для подключения к хранилищу S3.

    • Реализован новый метод блокировки, который позволяет использовать блокировки с протоколами S3 и NFS.

  • Добавлена функция pgv_exists_elem в pg_variables, которая проверяет, существует ли элемент с ключом в общей переменной-коллекции.

  • Расширение pgpro_stats обновлено до версии 1.7.1, в которой были исправлены некоторые ошибки и появились новые возможности. Основные изменения перечислены ниже:

    • Добавлена возможность сохранения ненормализованных планов для запросов в pgpro_stats, планы которых ранее не сохранялись.

    • Исправлена проблема, препятствовавшая мониторингу, когда представление pgpro_stats_statements содержало большое количество строк с одинаковыми значениями plan и queryid, но разными значениями planid. Проблема была вызвана ошибкой в разборе дерева планов, содержащего узел T_Memoise.

  • Исправлена ошибка «ERROR: query failed: ERROR: tablespace "XXXX" does not exist» (ОШИБКА: запрос не выполнен: ОШИБКА: табличное пространство «XXXX» не существует), которая могла возникать, когда команда pg_repack пыталась реорганизовать таблицы в табличном пространстве, имя которого начинается с цифры. Основная причина проблемы заключалась в отсутствии дополнительных кавычек, которые ожидались pg_repack.

  • Добавлен параметр --save-fullpage в pg_waldump. Он позволяет сохранять образы полных страниц, включённые в записи WAL, в заданный целевой каталог.

E.2.2. Миграция на версию 13.15.1

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

Если вы хотите сохранить существующее представление карт видимости в pageinspect при миграции на текущую основную версию Postgres Pro Enterprise с использованием pg_upgrade, выполните команду VACUUM, прежде чем начинать обновление.

Начиная с Postgres Pro Enterprise 13.13.1, права ролей с атрибутом CREATEROLE ограничены, и для изменения свойств других ролей требуется наличие права ADMIN OPTION.

Настоятельно не рекомендуется обновлять кластер с 32-битными идентификаторами транзакций на версии Postgres Pro Enterprise ниже 13.12.2 при наличии мультитранзакций в базе данных, поскольку это может вызвать повреждение данных.

При обновлении до версии Postgres Pro Enterprise 13.11.1 и выше обязательно обновите pg_probackup до версии 2.6.4 или выше, поскольку более ранние версии pg_probackup несовместимы с этими версиями Postgres Pro Enterprise.

Если вы ранее мигрировали на Postgres Pro Enterprise версии 13.3.1 или ниже, обязательно перестройте индексы GIN, выполнив команду REINDEX.

Если вы используете PTRACK в процедуре резервного копирования, реализуемой c помощью утилиты pg_probackup, и обновляетесь с Postgres Pro Enterprise версии 13.2.2 или ниже, сделайте полную резервную копию базы данных после обновления.

Если в вашей инсталляции Postgres Pro Enterprise 13.2.1 имеются сжатые табличные пространства, созданные без явного выбора алгоритма pglz, произведите обновление следующим образом. До обновления выгрузите полный дамп, используя pg_dumpall. Обновите Postgres Pro Enterprise, пересоздайте кластер баз данных и восстановите все данные из дампа. Затем вы можете создать табличные пространства CFS по прежней схеме.

Если вы уже обновили инсталляцию Postgres Pro Enterprise 13.2.1 с табличными пространствами CFS и потеряли доступ к сжатым данным, обратитесь к службе поддержки.

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