Зафиксируйте исходное состояние
До испытаний соберите версии сервера, ОС, драйверов, расширений и средств резервного копирования. Сохраните настройки, размеры объектов, статистику самых дорогих запросов, задержки дисков, время контрольных операций и профиль пиковой нагрузки. Без базовой линии после обновления невозможно отличить реальное улучшение от случайного изменения трафика.
Проверьте матрицу поддержки у приложения и поставщиков расширений. Наличие пакета для новой версии ещё не гарантирует совместимость конкретной схемы и сценариев.
Тестируйте асинхронный ввод-вывод на своём хранении
В PostgreSQL 18 появился новый механизм асинхронного ввода-вывода с параметром выбора метода. Он способен повысить производительность последовательного чтения и обслуживания, но эффект зависит от ОС, файловой системы, СХД, кеша и типа запросов.
Сравнивайте конфигурации на копии рабочего набора: холодный и прогретый кеш, отчёты, резервное копирование, vacuum и конкурентные транзакции. Одной синтетической проверки диска недостаточно.
Ищите изменившиеся планы запросов
Оптимизатор получил новые возможности, включая skip scan для многоколоночных B-tree индексов. Это может улучшить часть запросов, но любое крупное обновление способно изменить планы и выявить устаревшую статистику. Соберите набор критических SQL, сравните EXPLAIN ANALYZE, длительность, чтения и блокировки.
Отдельно проверьте ORM, подготовленные запросы, функции, типы данных и расширения. Новые возможности вроде UUIDv7 и виртуальных генерируемых колонок стоит внедрять после базового обновления, а не смешивать с ним в одном окне.
Проверьте доступ и наблюдаемость
В версии 18 расширены возможности OAuth и диагностики, а аутентификация MD5 объявлена устаревающей. Проведите инвентаризацию способов подключения, версий клиентских библиотек, правил pg_hba.conf, сертификатов и сервисных учётных записей. Не меняйте механизм аутентификации без проверки всех приложений и процедур аварийного доступа.
Настройте сравнимые метрики до и после: ожидания, I/O, репликация, checkpoints, autovacuum, ошибки и время запросов.
Репетируйте обновление и возврат
Выберите логическое или физическое обновление исходя из допустимого простоя и объёма. Репетиция должна измерять фактическое время, проверять расширения, реплики, резервное копирование и контроль целостности. PostgreSQL 18 позволяет сохранять статистику оптимизатора при pg_upgrade, но это не отменяет анализа после запуска.
План возврата фиксируют до начала: точка остановки записи, совместимость данных, переключение приложений, DNS или балансировщика и судьба транзакций после переключения. Обновление завершено после периода наблюдения и подтверждения бизнес-операций, а не после первого успешного подключения.

