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

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

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

PGBACKREST_BACKUP_FAIL 1С:Предприятие и СУБД

Настройка резервного копирования PostgreSQL с помощью pgBackRest: Полный гайд

Обновлено: 26.08.2026 · Официальная документация ↗
  • Длительное время создания резервных копий утилитой pg_dump на базах данных объемом более 1 ТБ.
  • Блокировки и деградация дисковой подсистемы при снятии базовых бэкапов через pg_basebackup.
  • Ошибки архивации журнала предзаписи archive_command failed в логах СУБД.
  • Невозможность восстановления состояния кластера на произвольный момент времени (Point-in-Time Recovery).

1. Установка pgBackRest

Установите пакет утилиты на хосте СУБД и выделенном сервере репозитория:

# Debian/Ubuntu
apt-get install -y pgbackrest

# RHEL/Rocky Linux
dnf install -y pgbackrest

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

На стороне сервера базы данных настройте секцию кластера:

[global]
repo1-host=backup-repo.internal
repo1-host-user=postgres
repo1-path=/var/lib/pgbackrest
process-max=4
log-level-console=info
log-level-file=detail
start-fast=y
compress-type=zst
compress-level=3

[main]
pg1-path=/var/lib/postgresql/16/main
pg1-user=postgres

3. Настройка параметров ядра PostgreSQL

Внесите изменения в postgresql.conf:

archive_mode = on
archive_command = 'pgbackrest --stanza=main archive-push %p'
wal_level = replica
max_wal_senders = 10

Перезапустите PostgreSQL для применения параметров WAL:

systemctl restart postgresql

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

# Создание станзы (выполняется на сервере бэкапов)
sudo -u postgres pgbackrest --stanza=main stanza-create

# Проверка конфигурации и связности
sudo -u postgres pgbackrest --stanza=main check

# Запуск полного бэкапа
sudo -u postgres pgbackrest --stanza=main --type=full backup

5. Восстановление на момент времени (PITR)

pgbackrest --stanza=main --delta \
  --type=time "--target=2025-03-30 14:30:00+03" \
  --target-action=promote restore
💡 Практика специалистов: Всегда настраивайте выделенный сетевой интерфейс или VLAN для передачи WAL и дампов на сервер хранения, чтобы трафик резервного копирования не утилизировал полосу пропускания клиентских транзакций.

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

В чем главное преимущество pgBackRest перед pg_dump и pg_basebackup?

pgBackRest выполняет параллельное бинарное копирование страниц на уровне блоков, поддерживает инкрементальные и дифференциальные бэкапы, асинхронную доставку WAL и верификацию контрольных сумм без блокировки таблиц.

Как настроить ротацию бэкапов (retention policy)?

В секции [global] файла /etc/pgbackrest.conf задаются параметры repo1-retention-full=2 (хранить 2 полных бэкапа) и repo1-retention-diff=7 (хранить 7 дифференциальных).

Что делает параметр start-fast=y?

Он принудительно инициирует чекпоинт в СУБД с немедленным сбросом грязных страниц (immediate checkpoint), сокращая время ожидания старта резервного копирования.

Как восстановить только одну конкретную базу данных из кластера?

pgBackRest восстанавливает физический кластер целиком. Для восстановления отдельной БД можно использовать опцию --db-include, однако все остальные базы будут восстановлены как пустые заглушки для сохранения целостности каталога.

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