Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

PGBACKREST_ARCHIVE_FAIL Linux / DevOps

Непрерывная архивация и восстановление PITR в PostgreSQL с pgBackRest

Обновлено: 24.08.2026
  • Случайное повреждение или удаление данных (DROP TABLE, ошибочный UPDATE), требующее отката на точную секунду в прошлом.
  • Медленное создание бэкапов стандартным pg_dump на терабайтных базах.
  • Ошибки архивации WAL в archive_command.

1. Конфигурация pgBackRest (/etc/pgbackrest.conf)

[global]
repo1-path=/var/lib/pgbackrest
repo1-retention-full=2
repo1-retention-diff=7
repo1-cipher-type=aes-256-cbc
repo1-cipher-pass=StrongSecretEncryptionKey123
process-max=4
log-level-console=info
log-level-file=detail
start-fast=y
compress-type=zst

[db-stanza]
pg1-path=/var/lib/postgresql/15/main
pg1-user=postgres

2. Настройка архивации в postgresql.conf

archive_mode = on
archive_command = 'pgbackrest --stanza=db-stanza archive-push %p'
wal_level = replica
max_wal_senders = 5

3. Инициализация станзы и создание бэкапа

# Инициализация хранилища архивов
sudo -u postgres pgbackrest --stanza=db-stanza stanza-create

# Проверка корректности архивации
sudo -u postgres pgbackrest --stanza=db-stanza check

# Создание первого полного бэкапа
sudo -u postgres pgbackrest --stanza=db-stanza --type=full backup

4. Восстановление на определенный момент времени (PITR)

# Остановка PostgreSQL
systemctl stop postgresql

# Запуск восстановления до указанной метки времени
sudo -u postgres pgbackrest --stanza=db-stanza \
  --type=time \
  --target="2023-11-20 14:35:00" \
  --target-action=promote \
  restore

# Запуск базы
systemctl start postgresql
💡 Практика специалистов: Регулярно тестируйте восстановление бэкапов на отдельном сервере (Staging/DR). Наличие зеленых галочек в логах создания резервных копий не гарантирует консистентность, пока восстановление не проверено на практике.

Частые вопросы (FAQ)

Что означает директива target-action=promote при PITR?

Она указывает PostgreSQL после наката WAL до целевой метки времени автоматически выйти из режима восстановления, переключить Timeline и открыть базу данных для чтения и записи.

В чем преимущество формата сжатия zstd в pgBackRest?

Алгоритм Zstandard обеспечивает степень сжатия уровня gzip при скорости работы, сопоставимой с lz4, что снижает нагрузку на CPU и дисковую подсистему при интенсивной генерации WAL.

Полезные материалы
Рекомендуем