50 lines
1.2 KiB
Markdown
50 lines
1.2 KiB
Markdown
# PostgreSQL Auto Backup
|
||
|
||
В проект добавлен сервис `postgres-backup` в [docker-compose.yml](/C:/Users/vlad/Documents/Projects/alpinbet-parser/docker-compose.yml).
|
||
|
||
Что делает сервис:
|
||
|
||
- по расписанию запускает `pg_dump` основной БД
|
||
- при `BACKUP_INCLUDE_CHAT_DB=true` также архивирует chat-БД
|
||
- сохраняет архивы в папку `./backups`
|
||
- удаляет архивы старше `BACKUP_RETENTION_DAYS`
|
||
|
||
Настройки в `.env`:
|
||
|
||
```env
|
||
BACKUP_TZ=Europe/Moscow
|
||
BACKUP_INTERVAL_SECONDS=86400
|
||
BACKUP_RETENTION_DAYS=7
|
||
BACKUP_GZIP_LEVEL=6
|
||
BACKUP_INCLUDE_CHAT_DB=true
|
||
```
|
||
|
||
Запуск:
|
||
|
||
```bash
|
||
docker compose up -d postgres-backup
|
||
```
|
||
|
||
Проверка логов:
|
||
|
||
```bash
|
||
docker compose logs --tail=100 postgres-backup
|
||
```
|
||
|
||
Проверка архивов:
|
||
|
||
```bash
|
||
ls -lah backups
|
||
```
|
||
|
||
Имена файлов:
|
||
|
||
- `backups/main_YYYY-MM-DD_HH-MM-SS.sql.gz`
|
||
- `backups/chat_YYYY-MM-DD_HH-MM-SS.sql.gz`
|
||
|
||
Ручной backup при необходимости:
|
||
|
||
```bash
|
||
docker compose exec -T postgres pg_dump -U "$POSTGRES_USER" -d "$POSTGRES_DB" | gzip > backups/manual_$(date +%F_%H-%M-%S).sql.gz
|
||
```
|