Настройка архивирования журналов транзакций
СУБД на основе PostgreSQL хранят журналы транзакций. Эти журналы позволяют восстановить БД к консистентному состоянию путем последовательного применения сохраненных транзакций. Архивирование и резервное копирование этих журналов позволит восстановить БД как из любого неконсистентного состояния, так и восстановить БД на любой заданный момент времени (point-in-time recovery, PITR).
Чтобы включить режим архивирования журналов транзакций (ARCHIVE):
-
Установите на ведущем сервере параметру
wal_levelзначениеreplica. -
Установите параметру
archive_modeзначениеyesилиalways(на ведомом сервере — всегдаalways). -
Задайте команды сохранения (
archive_command) и восстановления (restore_command) журналов транзакций.Пример 1. Настройка архивирования журналов транзакций вpostgresql.confчерез утилитуcpwal_level = replica archive_mode = on archive_command = 'cp %p /opt/rubackup/mnt/postgresql_archives/%f' restore_command = 'cp /opt/rubackup/mnt/postgresql_archives/%f %p'Пример 2. Настройка архивирования журналов транзакций вpostgresql.confчерез утилитуrb_module_postgresqlwal_level = replica archive_mode = on archive_command = '/opt/rubackup/modules/rb_module_postgresql pgsql-archive-push %p' restore_command = '/opt/rubackup/modules/rb_module_postgresql pgsql-archive-get %f %p'Параметр восстановления restore_commandиспользуется только для версии PostgreSQL 12 и выше.Допускается сжатие архивных файлов транзакций во время архивирования или восстановления из архива.
Пример 3. Команды сжатия и распаковки архивных журналов транзакцийarchive_command = 'gzip < %p > /opt/rubackup/mnt/postgresql_archives/%f.gz' restore_command = 'gunzip < /opt/rubackup/mnt/postgresql_archives/%f.gz > %p' -
Выдайте пользователю
postgresправа на чтение и запись в каталог, в котором хранятся архивные журналы транзакций (WAL-файлы).Пример 4. Выдача прав доступа пользователюpostgresна каталог/opt/rubackup/mnt/postgresql_archives/sudo chown postgres:postgres /opt/rubackup/mnt/postgresql_archives/Каталог также должен быть доступен для записи и чтения пользователю, под контролем которого работает клиент RuBackup.
На папку, хранящую архив журналов транзакций, необходимо указать
в файле настроек модуля (параметр
archive_catalog).