Резервное копирование
Бэкап — это не "копия на флешку раз в год", а политика: что копируем, как часто, куда складываем, за сколько шагов восстанавливаем и как проверяем, что restore реально работает.
Универсальные утилиты (файлы и каталоги)
| Инструмент | Суть |
|---|---|
| rsync | Инкрементная синхронизация по SSH или локально |
| restic | Шифрование, дедупликация, S3/B2/локально |
| BorgBackup | Сжатие + шифрование, эффективные инкременты |
| Duplicity | GPG + облачные бэкенды |
| rclone | Синхронизация в облака |
| Timeshift | Снапшоты системы Linux (как Time Machine) |
# Пример rsync на удалённый сервер
rsync -avz --delete /var/www/ user@backup:/backups/www/
# restic — инициализация репозитория
restic -r /mnt/backup/restic init
restic -r /mnt/backup/restic backup /home/user/projects
Реляционные СУБД
| СУБД | Инструмент | Команда / идея |
|---|---|---|
| PostgreSQL | pg_dump, pg_basebackup |
Логический дамп vs физический + WAL (PITR) |
| MySQL/MariaDB | mysqldump, Percona XtraBackup |
Горячий физический бэкап InnoDB |
| SQL Server | BACKUP DATABASE |
Full / differential / log |
| SQLite | .backup или копия файла |
sqlite3 db ".backup 'copy.db'" |
pg_dump -U postgres -Fc mydb > mydb.dump
mysqldump -u root -p --all-databases > all.sql
NoSQL
| СУБД | Инструмент |
|---|---|
| MongoDB | mongodump / mongorestore |
| Cassandra | nodetool snapshot |
| Redis | RDB-снапшоты, AOF в redis.conf |
| Elasticsearch | Snapshot API в S3 или локальный path |
Автоматизация
| Средство | Применение |
|---|---|
| cron + shell | Классика: 0 2 * * * /usr/local/bin/backup.sh |
| systemd timers | Альтернатива cron с журналированием |
| borgmatic | YAML-конфиг поверх Borg |
| Ansible | Один playbook на десятки хостов |
Правило 3-2-1
3 копии данных, на 2 разных носителях, 1 копия вне офиса/ЦОД. Бэкап без тестового restore — только надежда, не гарантия.
PITR (Point-in-Time Recovery)
Восстановление "на момент времени" за счёт журналов:
- PostgreSQL — WAL +
pg_basebackup - MySQL — binary log
- SQL Server — transaction log
Требует непрерывного архивирования логов, не только недельного full.
См. также
- СУБД · NoSQL
- Облачные хранилища — off-site через rclone
- Восстановление после сбоя — WAL, redo/undo, RPO/RTO
- Управление СУБД — бэкапы PostgreSQL, MySQL, облачные снапшоты