- Node-guardian running on MacBook and updating metrics - NODE2 agents (Atlas, Greeter, Oracle, Builder Bot) assigned to node-2-macbook-m4max - Swapper models displaying correctly (8 models) - DAGI Router agents showing with correct status (3 active, 1 stale) - Router health check using node_cache for remote nodes
4.3 KiB
Налаштування автоматичних бекапів PostgreSQL
Огляд
Цей документ описує налаштування автоматичних бекапів бази даних PostgreSQL для DAARION.
Вимоги
- PostgreSQL 12+
- Доступ до бази даних з правами
pg_dump - Достатньо місця на диску для зберігання бекапів
Встановлення
1. Створити директорію для бекапів
sudo mkdir -p /var/backups/daarion
sudo chown $USER:$USER /var/backups/daarion
2. Скопіювати скрипт бекапу
sudo cp scripts/backup_postgres.sh /usr/local/bin/backup_daarion.sh
sudo chmod +x /usr/local/bin/backup_daarion.sh
3. Налаштувати змінні оточення (опціонально)
Якщо потрібно змінити параметри за замовчуванням, створіть файл /etc/daarion-backup.conf:
DB_USER=daarion
DB_NAME=daarion
BACKUP_DIR=/var/backups/daarion
RETENTION_DAYS=7
І додайте в скрипт:
source /etc/daarion-backup.conf
4. Налаштувати cron
Додати в crontab (запуск щогодини):
crontab -e
Додати рядок:
0 * * * * /usr/local/bin/backup_daarion.sh >> /var/log/daarion-backup.log 2>&1
Або для запуску щодня о 2:00 ночі:
0 2 * * * /usr/local/bin/backup_daarion.sh >> /var/log/daarion-backup.log 2>&1
5. Перевірити роботу
Запустити вручну:
/usr/local/bin/backup_daarion.sh
Перевірити, що файл створився:
ls -lh /var/backups/daarion/
Відновлення з бекапу
З файлу .dump (custom format)
pg_restore -U daarion -d daarion -c /var/backups/daarion/daarion_2024-01-01_12-00.dump
З SQL файлу (якщо використовується -Fp)
psql -U daarion -d daarion < /var/backups/daarion/daarion_2024-01-01_12-00.sql
Завантаження в хмару (опціонально)
Cloudflare R2
- Встановити rclone:
curl https://rclone.org/install.sh | sudo bash
- Налаштувати R2:
rclone config
- Додати в скрипт бекапу:
# Upload to R2
rclone copy "$BACKUP_FILE" "r2:daarion-backups/" --config /etc/rclone.conf
AWS S3
aws s3 cp "$BACKUP_FILE" s3://daarion-backups/
Моніторинг
Перевіряти логи:
tail -f /var/log/daarion-backup.log
Налаштувати алерти при помилках (наприклад, через email або Telegram bot).
Ротація бекапів
Скрипт автоматично видаляє бекапи старіше 7 днів (за замовчуванням).
Щоб змінити період зберігання, встановіть змінну RETENTION_DAYS:
export RETENTION_DAYS=30 # Зберігати 30 днів
Розмір бекапів
Типовий розмір бекапу для DAARION MVP: 10-50 MB (залежить від кількості даних).
Для бази з 1000 агентів та 10000 повідомлень: ~20-30 MB.
Безпека
- Бекапи містять чутливі дані
- Обмежити доступ до директорії бекапів:
chmod 700 /var/backups/daarion - Шифрувати бекапи перед завантаженням в хмару
- Не зберігати бекапи в публічних місцях
Troubleshooting
Помилка "permission denied"
Перевірити права доступу до директорії:
ls -ld /var/backups/daarion
Помилка "pg_dump: command not found"
Додати PostgreSQL bin до PATH або використати повний шлях:
/usr/bin/pg_dump -U daarion -Fc daarion > ...
Недостатньо місця на диску
Перевірити вільне місце:
df -h /var/backups
Очистити старі бекапи вручну:
find /var/backups/daarion -type f -mtime +7 -delete