3.2. Монтирование каталога резервных копий с помощью FUSE #
pg_probackup3 позволяет запускать экземпляр базы данных напрямую из резервной копии, проверять и восстанавливать отдельные данные без необходимости полного восстановления, используя команду fuse.
Эта команда задействует механизм FUSE (Filesystem in User Space, Файловая система в пользовательском пространстве), монтируя виртуальное представление каталога резервных копий. Postgres Pro взаимодействует с этим смонтированным каталогом как с реальным каталогом PGDATA
, при этом все запросы к файловой системе перенаправляются к файлам резервной копии. Так как изменения пишутся в кеш, а не в резервную копию, исходная резервная копия остаётся неизменной, а все операции выполняются в режиме только для чтения.
Рисунок 3.1. Механизм FUSE pg_probackup3
Основные сценарии использования команды fuse:
Восстановить удалённые данные с определённой даты (например, с помощью pg_dump).
Проверить данные на определённый момент времени.
Обеспечить среду, идентичную рабочей, в режиме только для чтения, когда полное восстановление заняло бы слишком много времени.
Выполнить откат на определённый момент времени для тестирования и отладки сбоев приложения.
Генерировать отчёты на основе резервной копии без затрат на полное восстановление, в качестве альтернативы репликации.
Поддерживать пользовательские базы данных на FUSE без необходимости полного восстановления большого объёма данных.
Примечание
В ALT Linux пользователь, запускающий pg_probackup3, должен быть членом группы fuse
. За подробностями обратитесь к документации ALT Linux.
Чтобы использовать смонтированную резервную копию как PGDATA
, укажите путь_монтирования
в качестве пути для параметра -D
при запуске Postgres Pro командой pg_ctl start
.
Чтобы обеспечить достаточное дисковое пространство для операций FUSE, укажите пользовательский каталог для хранения кеша через параметр --cache-dir
.
Монтирование цепочки резервных копий требует наличия заранее созданных файлов сопоставления. Чтобы включить создание файлов сопоставления, используйте один из следующих методов:
За подробной информацией о команде fuse
и её параметрах обратитесь к «Команды».