Компания Postgres Professional выпускает Postgres Pro Backup Enterprise (ProBackup) 3.4.0 — очередное обновление инструмента резервного копирования и восстановления. В новой версии реализована возможность удаленного инкрементального восстановления, оптимизирована производительность при работе с удалёнными хранилищами, расширена поддержка CFS (Compressed File System) и внесён ряд исправлений, повышающих стабильность работы в различных инфраструктурах.
Напомним, что Postgres ProBackup разрабатывался с учётом требований крупных корпоративных клиентов. В одном продукте сочетаются базовые функции резервного копирования и возможности, востребованные в Enterprise-сегменте: резервное копирование через API для интеграции с внешними системами управления, хранение бэкапов в формате единого файла, работа без SSH-доступа и без прав к PGDATA (в том числе от непривилегированных пользователей), а также поддержка версий PostgreSQL 15+.
Утилита позволяет выполнять монтирование копий через FUSE для быстрого доступа к данным, осуществлять удаленное восстановление отдельных баз данных, объединять цепочки инкрементальных бэкапов и оптимизировать процессы под различные типы хранилищ — от облачных платформ до enterprise-кластеров.
Удаленное инкрементальное восстановление в режиме PRO
Ключевым нововведением версии 3.4.0 стала возможность выполненить удалённое инкрементальное восстановление в режиме PRO. Для этого в команду send-backup добавлен новый параметр --incremental-mode с опциями CHECKSUM, LSN или NONE. Это решение позволяет оптимизировать процесс восстановления систем из удалённых репозиториев, снижая объём передаваемых по сети данных.
Кроме того, размер буфера обмена по умолчанию --buffer-size увеличен до 128 КБ. Изменение направлено на повышение производительности при передаче данных через SFTP и при работе с другими удалёнными хранилищами.
Развитие поддержки CFS (Compressed File System)
В версии 3.4.0 внесены доработки в логику взаимодействия со сжатой файловой системой CFS:
к списку поддерживаемых алгоритмов сжатия (zstd, gzip) добавлен PGLZ, что расширяет совместимость с различными конфигурациями СУБД;
устранена проблема с применением сжатия при резервном копировании CFS-файлов. Теперь алгоритм сжатия для каждого табличного пространства корректно определяется на основе CFM-файлов, независимо от общих параметров сжатия бэкапа. Это позволяет одновременно использовать разные алгоритмы (zlib, lz4, zstd) в разных табличных пространствах;
исправлена логика сравнения PGDATA при работе с CFS. Использование CFM-файлов для проверки контрольных сумм страниц обеспечивает корректность выполнения операций инкрементального восстановления и catchup.
Совместимость с платформой S390x
Добавлена полноценная поддержка S390 (big-endian) для Shardman. Исправлены критические проблемы с порядком байтов в контрольных суммах CRC, сравнении PGDATA с CFM-файлами и валидации WAL. Инкрементальное восстановление и операции catchup теперь полностью поддерживаются на архитектурах S390x.
Улучшения сетевого взаимодействия S3 и SFTP
Оптимизирована стабильность и удобство мониторинга сетевых операций:
Работа с S3. Из логов удалены избыточные предупреждения при проверке существования объектов, снижен объём логирования при штатных операциях. Исправлена ошибка curl_easy_getinfo, возникавшая при интеграции с MinIO, а также улучшена обработка таймаутов и сетевых сбоев.
Надежность SFTP. Исправлена проблема, из-за которой SFTP-сессия могла оставаться открытой при ошибке записи файла. Теперь сессия корректно закрывается по завершении операции, а диагностические сообщения об ошибках SFTP стали более информативными.
Прочие исправления и улучшения стабильности
В релизе 3.4.0 исправлен ряд технических ошибок, влияющих на надёжность процессов резервного копирования:
Работа с WAL и ZSTD. Решена проблема некорректной обработки сжатия ZSTD при архивировании WAL-файлов за счёт добавления собственной реализации фильтра zstd iostreams. Также исправлена работа команды archive-get при недоступности определённых алгоритмов сжатия.
Устранение ошибок переполнения. Исправлена ошибка Attempt to write more than uint32_t::max при использовании параметра --with-file-map на больших объёмах данных. Также устранена проблема с обнаружением переполнения буфера при создании резервной копии.
Управление процессами и производительность. Устранено снижение производительности при создании PTRACK-бэкапов в режимах PRO и DIRECT. Исправлено завершение рабочих потоков при возникновении ошибок в режиме DIRECT, а также предотвращено появление бесконечных циклов при обнаружении повреждений резервной копии.
Обработка статусов и метаданных. Прерывание валидации резервной копии больше не приводит к автоматическому присвоению ей статуса CORRUPT. При выполнении команды retention теперь осуществляется логирование текущих настроек политики удержания.
Исправлено отслеживание позиции репликационного слота для своевременного удаления архивированных WAL-файлов.
ProBackup 3.4.0 уже доступен для обновления: