1.1. Функциональные возможности #
В pg_probackup3 входит вся ключевая функциональность предыдущих версий утилиты pg_probackup. Некоторые менее популярные возможности могут отсутствовать, но будут добавлены в будущем.
В сравнении с pg_probackup, pg_probackup3 содержит следующие новые функции и улучшения:
Версионная независимость. Одна и та же версия pg_probackup3 теперь может использоваться с различными версиями Postgres Pro или PostgreSQL, обеспечивая совместимость и адаптивность.
Интеграция с API. pg_probackup3 может интегрироваться с различными системами резервного копирования через API, что обеспечивает централизованное управление резервным копированием.
Работа без SSH. pg_probackup3 может работать без SSH-соединения, гарантируя более эффективную и безопасную передачу данных.
FUSE
. В pg_probackup3 реализована командаfuse
, которая с помощью механизма FUSE (Filesystem in User Space, Файловая система в пользовательском пространстве) обеспечивает работу с базой данных прямо из резервной копии, минуя этап полного восстановления.Запуск от имени непривилегированных пользователей. pg_probackup3 может запускаться пользователями, не имеющими прав доступа к PGDATA. Это повышает уровень безопасности и снижает риск возможных ошибок.
Новый формат резервных копий. Каждая резервная копия теперь хранится в виде единого файла, что облегчает управление и хранение резервных копий.
Поддержка pg_basebackup. В режиме источника данных BASE теперь возможно использовать репликационный протокол pg_basebackup для повышения скорости и эффективности резервного копирования.
Режим PRO. В режиме источника данных PRO pg_probackup3 использует собственный репликационный протокол.
Объединение цепочек инкрементальных копий. Для экономии места на диске теперь можно объединять цепочки инкрементальных резервных копий.
Полностью переработанное ядро
Новая архитектура
Улучшенная производительность
По сравнению с другими средствами резервного копирования pg_probackup3 имеет следующие преимущества, полезные для реализации различных стратегий резервного копирования и работы с базами данных большого объёма:
Поддержка S3 для хранения данных в частных облачных хранилищах на базе объектного хранилища MinIO, Amazon S3 и VK Cloud. Обеспечивается при использовании pg_probackup3 с Postgres Pro Enterprise. Данные резервного копирования передаются в S3 и обратно без сохранения в промежуточных хранилищах, что устраняет необходимость в большом временном хранилище.
Поддержка ленточных хранилищ. pg_probackup3 поддерживает работу с системами резервного копирования на ленточные хранилища.
Поддержка NFS версий 3 и 4. pg_probackup3 позволяет хранить резервные копии в сетевой файловой системе.
Инкрементальное копирование. Выбирая один из трёх режимов инкрементального копирования, вы можете реализовать стратегию резервного копирования, соответствующую вашему профилю транзакционной нагрузки. Это позволяет сэкономить место на диске и создавать копии быстрее, чем при полном копировании. Восстановление инкрементальных копий также осуществляется быстрее, чем воспроизведение файлов WAL.
Политика хранения. Управление архивами WAL и резервными копиями в соответствии с установленными правилами их хранения. Вы можете ограничить хранение резервных копий по времени или их количеству, а также переопределить время жизни (TTL) для избранных копий. Потерявшие актуальность резервные копии могут объединяться или удаляться.
Параллельное выполнение. Выполнение внутренних процессов команд
backup
,restore
,merge
,delete
иvalidate
в несколько параллельных потоков.Удалённый режим работы. Выполнение резервного копирования экземпляра Postgres Pro, находящегося в удалённой системе, и удалённое восстановление.
Архивирование внешних каталогов. Резервное копирование файлов и каталогов, расположенных вне каталога данных Postgres Pro (
PGDATA
), например скриптов, файлов конфигурации, журналов или SQL-дампов.Каталогизация резервных копий. Получение списка резервных копий и соответствующей метаинформации в виде простого текста или JSON.
Каталогизация архивов WAL. Получение списка всех линий времени в WAL и соответствующей метаинформации в виде простого текста или JSON.
Частичное восстановление. Восстановление только избранных баз данных.
Интеграция с другими приложениями благодаря API, входящему в библиотеку
libpgprobackup
.
Для управления резервными копиями pg_probackup3 создаёт каталог резервных копий. В этом каталоге сохраняются все файлы резервных копий с дополнительной метаинформацией, а также архивы WAL, необходимые для восстановления на момент времени. Вы можете хранить резервные копии разных экземпляров в отдельных подкаталогах одного каталога копий.
Используя pg_probackup3, вы можете выполнять полное или инкрементальное резервное копирование:
Полные резервные копии содержат все файлы данных, необходимые для восстановления кластера баз данных с нуля.
Инкрементальные копии создаются на уровне страниц и включают только те данные, которые изменились со времени последнего копирования. Это позволяет сэкономить место на диске и создавать копии быстрее, чем при полном копировании. Восстановление инкрементальных копий также осуществляется быстрее, чем воспроизведение файлов WAL. pg_probackup3 поддерживает следующие режимы инкрементального копирования:
Разностное копирование. В режиме
DELTA
pg_probackup3 считывает все файлы данных в каталоге данных и копирует только те страницы, которые изменились со времени предыдущего копирования. В этом режиме объём ввода/вывода может равняться объёму при полном резервном копировании.Копирование изменений. В режиме
PTRACK
Postgres Pro отслеживает изменения страниц на лету. Чтобы он работал, не требуется производить непрерывное архивирование. При каждом изменении страницы отношения она помечается в специальной картеPTRACK
. Это отслеживание привносит небольшие издержки в работу сервера, но значительно ускоряет инкрементальное резервное копирование.
Предупреждение
После повышения ведомого сервера до ведущего и переключения линий времени создайте первую резервную копию в режиме FULL или DELTA — другие режимы могут повредить данные.
pg_probackup3 может производить копирование только работающего экземпляра, а для обеспечения целостности таких копий требуется копировать WAL. Поэтому вне зависимости от выбранного режима копирования (FULL или DELTA), чтобы pg_probackup3 мог получить полноценную копию, нужно выбрать один из следующих режимов доставки WAL:
STREAM. Такие резервные копии включают все файлы, необходимые для восстановления целостного состояния кластера на момент создания копии. Вне зависимости от того, осуществляется ли непрерывное архивирование, необходимые для восстановления сегменты WAL считываются по протоколу потоковой репликации во время резервного копирования и включаются в состав резервной копии. Поэтому такие резервные копии называются автономными или самодостаточными.
ARCHIVE. В таком режиме целостность копий обеспечивается посредством непрерывного архивирования. Это режим доставки WAL по умолчанию.
В pg_probackup3 доступны следующие режимы источников данных для резервного копирования:
DIRECT. Репликационный протокол не используется.
BASE. Используется протокол pg_basebackup.
PRO. Режим по умолчанию; используется протокол pg_probackup3.