
pgbackrest release/2.59.0
Параллельное решение для резервного копирования и восстановления PostgreSQL с шифрованием, дельта-восстановлением и поддержкой мультиоблачных объектных хранилищ для аварийного восстановления на уровне предприятия.
pgBackRest
Надёжное резервное копирование и восстановление PostgreSQL
Введение
pgBackRest — это надёжное решение для резервного копирования и восстановления PostgreSQL, которое легко масштабируется до самых больших баз данных и рабочих нагрузок.
pgBackRest v2.59.2 — текущий стабильный релиз. Примечания к выпуску доступны на странице Releases.
Пожалуйста, поставьте нам звезду на GitHub, если вам нравится pgBackRest!
Новости
27 сентября 2026 - Выпущен pgBackRest 2.59.2
17 августа 2026 - Выпущен pgBackRest 2.59.1
20 июля 2026 - Новый дистрибутивный архив
Возможности
Параллельное резервное копирование и восстановление
Сжатие обычно является узким местом при резервном копировании, поэтому pgBackRest решает эту проблему с помощью параллельной обработки и более эффективных алгоритмов сжатия, таких как lz4 и zstd.
Локальная или удалённая работа
Специальный протокол позволяет pgBackRest выполнять резервное копирование, восстановление и архивирование локально или удалённо через TLS/SSH с минимальной конфигурацией. Также предоставляется интерфейс для запросов к PostgreSQL через уровень протокола, поэтому удалённый доступ к PostgreSQL никогда не требуется, что повышает безопасность.
Несколько репозиториев
Несколько репозиториев позволяют, например, иметь локальный репозиторий с минимальным сроком хранения для быстрого восстановления и удалённый репозиторий с более длительным сроком хранения для резервирования и доступа в масштабах предприятия.
Полное, дифференциальное и инкрементальное резервное копирование (на уровне файлов или блоков)
Поддерживаются полное, дифференциальное и инкрементальное резервное копирование. pgBackRest не подвержен проблемам временного разрешения rsync, что делает дифференциальное и инкрементальное резервное копирование безопасным без необходимости вычислять контрольную сумму каждого файла. Резервное копирование на уровне блоков экономит место, копируя только изменённые части файлов.
Ротация резервных копий и истечение срока хранения архива
Политики хранения можно задавать для полных и дифференциальных резервных копий, чтобы обеспечить покрытие для любого временного периода. Архив WAL можно поддерживать для всех резервных копий или строго для самых последних. В последнем случае WAL, необходимый для обеспечения согласованности старых резервных копий, будет сохраняться в архиве.
Целостность резервных копий
Контрольные суммы вычисляются для каждого файла в резервной копии и повторно проверяются во время восстановления или проверки. После завершения копирования файлов резервное копирование ожидает, пока каждый сегмент WAL, необходимый для обеспечения согласованности резервной копии, достигнет репозитория.
Резервные копии в репозитории могут храниться в том же формате, что и стандартный кластер PostgreSQL (включая табличные пространства). Если сжатие отключено и включены жёсткие ссылки, можно создать снимок резервной копии в репозитории и запустить кластер PostgreSQL непосредственно на этом снимке. Это преимущество для баз данных терабайтного масштаба, восстановление которых традиционным способом занимает много времени.
Все операции используют fsync на уровне файлов и каталогов для обеспечения долговечности.
Контрольные суммы страниц
Если контрольные суммы страниц включены, pgBackRest будет проверять контрольные суммы для каждого файла, копируемого во время резервного копирования. Все контрольные суммы страниц проверяются во время полного резервного копирования, а контрольные суммы в изменённых файлах проверяются во время дифференциального и инкрементального резервного копирования.
Сбои проверки не останавливают процесс резервного копирования, но предупреждения с подробной информацией о том, какие именно страницы не прошли проверку, выводятся в консоль и файловый журнал.
Эта функция позволяет обнаруживать повреждения на уровне страниц на раннем этапе, до того как истечёт срок хранения резервных копий, содержащих действительные копии данных.
Возобновление резервного копирования
Прерванное резервное копирование можно возобновить с точки, на которой оно было остановлено. Файлы, которые уже были скопированы, сравниваются с контрольными суммами в манифесте для обеспечения целостности. Поскольку эта операция может выполняться полностью на хосте репозитория, она снижает нагрузку на хост PostgreSQL и экономит время, так как вычисление контрольных сумм быстрее, чем сжатие и повторная передача данных.
Потоковое сжатие и контрольные суммы
Сжатие и вычисление контрольных сумм выполняются в потоке во время копирования файлов в репозиторий, независимо от того, находится ли репозиторий локально или удалённо.
Если репозиторий находится на хосте репозитория, сжатие выполняется на хосте PostgreSQL, а файлы передаются в сжатом формате и просто сохраняются на хосте репозитория. Когда сжатие отключено, используется более низкий уровень сжатия для эффективного использования доступной пропускной способности при минимальных затратах процессорного времени.
Дельта-восстановление
Манифест содержит контрольные суммы для каждого файла в резервной копии, поэтому во время восстановления можно использовать эти контрольные суммы для огромного ускорения обработки. При дельта-восстановлении любые файлы, отсутствующие в резервной копии, сначала удаляются, а затем генерируются контрольные суммы для оставшихся файлов. Файлы, совпадающие с резервной копией, остаются на месте, а остальные файлы восстанавливаются как обычно. Параллельная обработка может привести к резкому сокращению времени восстановления.
Параллельная асинхронная отправка и получение WAL
Включены специальные команды для отправки WAL в архив и получения WAL из архива. Обе команды поддерживают параллелизм для ускорения обработки и работают асинхронно, обеспечивая максимально быстрое время отклика для PostgreSQL.
Отправка WAL автоматически обнаруживает сегменты WAL, отправленные несколько раз, и выполняет дедупликацию, когда сегмент идентичен, в противном случае возникает ошибка. Асинхронная отправка WAL позволяет передать передачу другому процессу, который сжимает сегменты WAL параллельно для максимальной пропускной способности. Это может быть критически важной функцией для баз данных с чрезвычайно высоким объёмом записи.
Асинхронное получение WAL поддерживает локальную очередь сегментов WAL, которые распакованы и готовы к воспроизведению. Это сокращает время, необходимое для предоставления WAL в PostgreSQL, что максимизирует скорость воспроизведения. Наибольшую выгоду получают соединения и хранилища с высокой задержкой (например, S3).
Команды отправки и получения обе обеспечивают соответствие базы данных и репозитория путём сравнения версий PostgreSQL и системных идентификаторов. Это практически исключает возможность неправильной настройки расположения архива WAL.
Поддержка табличных пространств и ссылок
Табличные пространства полностью поддерживаются, и при восстановлении табличные пространства можно переназначить в любое место. Также можно переназначить все табличные пространства в одно место одной командой, что полезно для восстановления в целях разработки.
Ссылки на файлы и каталоги поддерживаются для любого файла или каталога в кластере PostgreSQL. При восстановлении можно восстановить все ссылки в их исходные местоположения, переназначить некоторые или все ссылки, либо восстановить некоторые или все ссылки как обычные файлы или каталоги в каталоге кластера.
Поддержка S3, Azure и GCS
Репозитории pgBackRest могут располагаться в совместимых с S3, Azure и GCS объектных хранилищах, что позволяет обеспечить практически неограниченную ёмкость и срок хранения.