Postgres Pro Backup Enterprise (pg_probackup)

Резервное копирование

Резервное копирование данных является одной из ключевых практик в управлении системами управления базами данных (СУБД), и PostgreSQL не является исключением. В условиях современного бизнеса, где информация становится одним из самых ценных активов, потеря данных может привести к серьезным финансовым и репутационным потерям. Резервное копирование позволяет защитить данные от различных угроз, таких как аппаратные сбои, ошибки пользователей, вирусные атаки и даже стихийные бедствия.

PostgreSQL предлагает встроенные инструменты и методы для создания резервных копий: 

  • логическое резервное копированияе — обеспечивается утилитой pg_dump 
  • физическое резервное копирование — обеспечивается утилитой pg_basebackup

Кроме встроенных утилит существуют внешние утилиты резервного копирования, использование утилит обеспечивает гибкость и надежность в процессе резервирования. Регулярное создание резервных копий не только помогает восстановить данные в случае их потери, но и позволяет поддерживать высокую доступность и целостность информации.

Кроме того, резервное копирование является важной частью стратегии управления изменениями и обновлениями системы. Оно позволяет тестировать новые версии и изменения в безопасной среде, минимизируя риски, связанные с внедрением новых функций или исправлений. В итоге, грамотная организация процесса резервного копирования в PostgreSQL — это залог стабильной работы и защиты данных, что в свою очередь способствует успешному развитию бизнеса.

Ограничения pg_dump и pg_basebackup

pg_dump — это утилита, предназначенная для создания логических резервных копий баз данных. Она позволяет экспортировать данные в формате SQL или в собственном формате, что делает возможным восстановление базы данных на другом сервере или в другой среде. Однако pg_dump имеет свои ограничения: он не подходит для создания резервных копий баз данных большого объема в реальном времени, так как может потребовать значительных ресурсов и времени на выполнение, что может негативно сказаться на производительности системы.

pg_basebackup предоставляет возможность создания физической резервной копии всей базы данных, включая все файлы и журналы транзакций. Этот инструмент идеально подходит для создания резервных копий в режиме реального времени и для настройки репликации. Однако pg_basebackup также имеет свои недостатки: ограниченные возможности при работе в многопоточном режиме, ограниченность при создании инкрементальных резервных копий, меньшая  гибкость по сравнению с pg_dump в выборе отдельных объектов для резервирования, невысокая скорость копирования.

Утилита резервного копирования pg_prоbackup

Так как функционала, удовлетворяющего высоким требованиям к резервному копированию, не было не в одной утилите-  возникла необходимость в разработке и поддержке собственной утилиты pg_probackup, которая призвана устранить недостатки существующих инструментов и предложить более продвинутые функции для поддержки СУБД PostgreSQL и PostgresProfessional. 
Утилита pg_probackup, разработанная компанией Postgres Professional обеспечивает более гибкий подход к резервному копированию, позволяя пользователям создавать полные и  инкрементальные  резервные копии, а также управлять ими через удобный интерфейс. Эта утилита также поддерживает дополнительные функции для повышения эффективности резервного копирования:

  • многопоточность,
  • сжатие данных, 
  • работу с различными хранилищами данных
  • и др.

Таким образом, внедрение pg_probackup в рабочие процессы резервного копирования PostgreSQL не только расширяет возможности администраторов баз данных, но и значительно повышает надежность хранения и защиту данных в случае сбоев, что является критически важным в условиях современного бизнеса.

Утилита pg_porbackup поставляется в  версиях

pg_probackup2.x

  • Разрабатываем pg_probackup с 2016 года
  • Один из наиболее функциональных инструментов резервного копирования для community-версии PostgreSQL
  • Лучший инструмент по обеспечению резервного копирования для Postgres Pro
  • 14 поддерживаемых платформ
  • Сообщества для пользователей community-версий pg_probackup https://t.me/pg_probackup

pg_probackup 2.5.15 Community — Open Source https://github.com/postgrespro/pg_probackup/
pg_probackup 2.8.6 STD/ENT — Коммерческая 
Существенно переработана, улучшена производительность, работа с памятью, сделан ряд оптимизаций по работе с большими объемами данных. 
Версия ENT отличается наличием возможностей по  работе с S3 и CFS. 

 

pg_probackup3.x

pg_probackup — новая, полностью коммерческая версия, разработка начата в 2023 году. При разработке был учтен опыт версии pg_probackup2.x

  • Новая архитектура (3 слоя, возможность использовать API для разработки своих приложений).
  • Изменен формат взаимодействия с БД – через репликационный протокол
  • Может работать с любой версией БД (не требуется сборка под каждую версию)
  • Новый формат резервной копии в виде единого файла
  • Возможность запуска сервера БД, без полного восстановления резервной копии (FUSE) 
 

Сравнение ключевой функциональности pg_probackup в разных редакциях PostgreSQL и Postgres Pro

pg_basebackup – утилита резервного копирования, которая по умолчанию идет в составе PostgreSQL. Утилита pg_probackup по умолчанию поставляется во всех редакциях Postgres Pro, а для сообщества и дистрибутивных сборок PostgreSQL доступны исходные коды на Github и пакеты различных дистрибутивов для установки через наш репозиторий.

Функции

PostgreSQL
с pg_probackup 2.5

Postgres Pro Enterprise
с pg_probackup 2.8+

Postgres Pro Enterprise
с pg_probackup 3.X

Postgres Pro Standard с pg_probackup 3.X

Однопоточный полный бэкап

+

+

+

+

Многопоточный режим 

+

+

+

+

Инкрементальный бэкап

+

+

+

+

Проверка целостности данных во время сессии резервного копирования

+

+

+

+

Слияние бэкапов, Merge

+

+

+

+

Резервная копия с удаленного сервера СУБД по защищенному каналу передачи данных (SSH) 

+

+

+

+

Компрессия pglz, zlib

+

+

+

+

Компрессия zstd, lz4

-

+

+

+

Инкрементальный бэкап на уровне блоков (PTRACK)

+

+

+

+

CFS совместимость

-

+

+

-

S3 прямая запись и чтение

-

+

+

-

Интеграция с СРК 

-

+

+

+

Управление политикой хранения резервных копий (Retention)

+

+

+

+

резервное копирование по сети , используя новый репликационный протокол

-

-

+

+

Новый формат резервной копии для ускорения записи

-

-

+

+

Новые возможности по работе в многопоточном режиме

-

-

+

+

Единая версия утилиты для разных версий БД

-

-

+

+

Расширенные возможности по управлению резервными копиями (merge)

-

-

+

+

Возможность запуска сервера БД без восстановления резервной копии (FUSE)

-

-

+

-

Документация

pg_probackup Community

pg_probackup Enterprise

 

 

Дополнительные возможности

Сжатие резервных копий, работа с CFS

По умолчанию в pg_probackup поддерживаются алгоритмы сжатия, доступные в PostgreSQL, – это pglz и zlib.

Для пользователей Postgres Pro Standard и Postgres Pro Enterprise доступны дополнительные алгоритмы сжатия: zstd и lz4. 

 


Рисунок 4. Сравнение работы различных алгоритмов сжатия блоков данных.

Мы исследуем влияние алгоритмов сжатия на скорость создания и восстановления резервной копии. На конференции PgConf.СПб 2023  мы рассказали о взаимном влиянии алгоритмов сжатия и работы CFS

Алгоритм ZSTD сжимает немного лучше, чем LZ4, но при этом работает медленнее. Возможность работы ZSTD в режиме многопоточности не влияет на скорость сжатия, так как сам pg_probackup уже работает многопоточно.  

В Postgres Pro Enterprise есть поддержка сжатых табличных пространств CFS, что позволяет сократить использование дискового пространства СУБД и ее резервной копии. Более подробно о том, как использовать это решение, вы можете почитать в статье на Habr о работе CFS

Утилита pg_probackup использует выбранный алгоритм сжатия только для блоков данных, где нет табличных пространств, заранее сжатых CFS. Выбранные алгоритмы сжатия для резервного копирования и CFS могут различаться, а команда merge будет выполнять слияние инкрементальных копий в новую полную резервную копию, используя алгоритм сжатия, указанный в последней инкрементальной копии. Поэтому вы можете оптимизировать место на диске сжать полный недельный бэкап так, чтобы он восстанавливался быстрее.   

Совместимость с отечественными СХД 

Мы проводим технологические испытания и работаем с новейшими разработками в области систем хранения данных отечественных производителей. Это касается современного оборудования: машин хранения данных для СУБД, S3-хранилищ и программно-аппаратных комплексов хранения данных с функцией дедупликации и программно-аппаратного сжатия данных. Мы тестируем и оптимизируем работу наших резервных копий с оборудованием таким образом, чтобы они записывались и восстанавливались быстрее, при этом работали все функции утилиты pg_probackup без ограничений. В числе СХД с которыми проводилось тестирование 

  • VK cloud
  • Tatlin Backup

Совместимость с отечественными СРК системами

СРК – системы резервного копирования. Мы работаем над интеграциями с отечественными производителями СРК-систем 

На данный момент с нами сертифицированы: RuBackup и Киберпротект. Каждая из систем имеет свои уникальные архитектурные преимущества для конечного потребителя, поэтому мы сотрудничаем с каждым индивидуально и предоставляем для тестирования наши новейшие разработки для прямой интеграции в СРК системы всех уникальных функций Postgres Pro Enterprise.

Документация

pg_probackup распространяется с открытым кодом и бесплатно для сообщества и PostgreSQLдокументация и исходный код доступны на Github

Postgres Pro Standard и Postgres Pro Certified  содержат улучшенную версию PTRACK Enterprise для работы с большим количеством таблиц в одной базе данных (более 50 000). Документация pg_probackup для Postgres Pro Standard доступна на нашем сайте.

Postgres Pro Enterprise содержит pg_probackup c PTRACK Enterprise и поддержкой S3, чтобы делать резервные копии больших СУБД, минуя промежуточную запись файлов бэкапа на диск. Документация pg_probackup для Postgres Pro Enterprise доступна на нашем сайте. Преимущество работы Enterprise версии дополняется поддержкой CFS, что позволяет оптимизировать дисковое пространство, используемое СУБД и ее резервной копией, а также ускорить создание резервной копии и восстановление из нее.

Postgres Pro Shardman содержит pg_probackup Enterprise версии, дополненный функциями для резервного копирования распределённой БД. Документация на Shardman расширена и содержит утилиты управления шардами кластера, мы предлагаем вам ознакомиться с полной документацией на нашем сайте

Запросить консультацию специалиста: presale@postgrespro.ru