3.7. Монтирование каталога резервных копий с помощью FUSE #

pg_probackup3 позволяет запускать экземпляр базы данных напрямую из резервной копии, проверять и восстанавливать отдельные данные без необходимости полного восстановления, используя команду fuse.

Эта команда задействует механизм FUSE (Filesystem in User Space, Файловая система в пользовательском пространстве), монтируя виртуальное представление каталога резервных копий. Postgres Pro взаимодействует с этим смонтированным каталогом как с реальным каталогом PGDATA, при этом все запросы к файловой системе перенаправляются к файлам резервной копии. Так как изменения пишутся в кеш, а не в резервную копию, исходная резервная копия остаётся неизменной, а все операции выполняются в режиме только для чтения.

Примечание

Операции fuse доступны только в версиях и редакциях Postgres Pro Enterprise.

Предупреждение

Механизм FUSE не предоставляет всех возможностей, необходимых для работы в производственной среде. Поэтому рекомендуется использовать fuse только для разовых операций. Производительность операций fuse может значительно варьироваться в зависимости от используемого типа хранилища (S3, NFS, SSD).

Рисунок 3.1. Механизм FUSE pg_probackup3

Механизм FUSE pg_probackup3

Основные сценарии использования команды fuse:

  • Восстановить удалённые данные с определённой даты (например, с помощью pg_dump).

  • Проверить данные на определённый момент времени.

  • Обеспечить среду, идентичную рабочей, в режиме только для чтения, когда полное восстановление заняло бы слишком много времени.

  • Выполнить откат на определённый момент времени для тестирования и отладки сбоев приложения.

  • Генерировать отчёты на основе резервной копии без затрат на полное восстановление, в качестве альтернативы репликации.

  • Поддерживать пользовательские базы данных на FUSE без необходимости полного восстановления большого объёма данных.

Примечание

В ALT Linux пользователь, запускающий pg_probackup3, должен быть членом группы fuse. За подробностями обратитесь к документации ALT Linux.

Чтобы использовать смонтированную резервную копию как PGDATA, укажите путь_монтирования в качестве пути для параметра -D при запуске Postgres Pro командой pg_ctl start.

Чтобы обеспечить достаточное дисковое пространство для операций FUSE, укажите пользовательский каталог для хранения кеша через параметр --cache-dir.

Монтирование цепочки резервных копий требует наличия заранее созданных файлов сопоставления. Чтобы включить создание файлов сопоставления, используйте один из следующих методов:

  • Используйте параметр --with-file-map с командой backup или merge.

  • Выполните команду file-map для существующей цепочки резервных копий. Обратите внимание, что это заменит все ранее созданные файлы сопоставления.

Для целей автоматизации файловую систему FUSE можно запустить в фоновом режиме с помощью параметра --detach.

Чтобы демонтировать файловую систему FUSE, используйте команду fuse с параметром --unmount:

pg_probackup3 fuse --unmount --mnt-path=путь_монтирования

За подробной информацией о команде fuse и её параметрах обратитесь к Подразделу «Команды».

3.7. Mounting a Backup Directory with FUSE #

pg_probackup3 allows running a database instance directly from a backup, inspecting and restoring specific data without requiring a full restore, using the fuse command.

This command implements the FUSE (Filesystem in User Space) mechanism, mounting a virtual representation of the backup directory. Postgres Pro interacts with this mounted directory as if it were an actual PGDATA directory, while proxying all file system requests to the backup files. Since changes are written to the cache rather than the backup, the original backup remains unchanged, and all operations are read-only.

Note

fuse operations are only available in Postgres Pro Enterprise versions and editions.

Warning

The FUSE mechanism does not provide all the capabilities required for production environment. It is thus recommended to use fuse for one-time operations only. The performance of fuse operations may vary significantly depending on your storage type (S3, NFS, SSD).

Figure 3.1. The pg_probackup3 FUSE Mechanism

The pg_probackup3 FUSE Mechanism

The key use cases for the fuse command are as follows:

  • Restore deleted data from a particular date (for example, using pg_dump).

  • Investigate data from a certain point in time.

  • Provide a read-only production-like environment when a full restore would be time-consuming.

  • Roll back to a specific moment in time to test and debug application failures.

  • Run reports on a backup without the overhead of a full restore, as an alternative to replication.

  • Support developer databases on FUSE without the need to perform a full multi-gigabyte restore.

Note

On ALT Linux, the user running pg_probackup3 must be a member of the fuse group. See the ALT Linux documentation for details.

To use the mounted backup as PGDATA, set mnt_path as the path for the -D parameter when starting Postgres Pro with pg_ctl start.

To ensure sufficient disk space for FUSE operations, use the --cache-dir option to specify a custom directory for cache storage.

Mounting a backup chain requires pre-generated file maps. To enable file map generation, use one of the following methods:

  • Use the --with-file-map option with the backup or merge command.

  • Run the file-map command for an existing backup chain. Note that this will replace any previously generated file maps.

For automation purposes, you can run the FUSE filesystem in the background by using the --detach option.

To unmount the FUSE filesystem, run the fuse command with the --unmount option:

pg_probackup3 fuse --unmount --mnt-path=mnt_path

For details on the fuse command and its parameters, refer to the section called “Commands”.

FAQ