# Backup e Restore - v2.0

## Backup automático do banco

### Script de backup (exemplo)

```bash
#!/bin/bash
# scripts/backup-db.sh
DATA=$(date +%Y%m%d_%H%M)
BACKUP_DIR="/var/backups/loterica"
DB_NAME="loteri31_premiada"
DB_USER="loteri31_loteric"

mkdir -p "$BACKUP_DIR"
mysqldump -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "$BACKUP_DIR/backup_${DATA}.sql.gz"
# Manter últimos 7 dias
find "$BACKUP_DIR" -name "backup_*.sql.gz" -mtime +7 -delete
```

### Cron (diário às 3h)

```cron
0 3 * * * /path/to/scripts/backup-db.sh
```

---

## Procedimento de restore

1. **Parar aplicação** (evitar writes durante restore)

2. **Restaurar dump:**
   ```bash
   gunzip -c backup_YYYYMMDD_HHMM.sql.gz | mysql -u user -p database
   ```

3. **Verificar integridade:**
   ```bash
   mysql -u user -p -e "SELECT COUNT(*) FROM grupo; SELECT COUNT(*) FROM bolao;" database
   ```

4. **Reiniciar aplicação**

### Restore parcial (tabelas específicas)

```bash
# Extrair apenas tabelas necessárias
gunzip -c backup.sql.gz | grep -E 'INSERT INTO `(grupo|bolao|cliente)`' | mysql database
```

---

## Cache (opcional)

- **Resultados:** Cache em memória ou Redis para `GET /api/v2/resultados`
- **Bolões:** Cache de listagem com TTL curto (ex: 60s)
- **Sessões:** Redis para sessões PHP em v2.0 (substituir arquivos em /tmp)

### Redis (exemplo)

```php
// config: REDIS_HOST, REDIS_PORT
// session.save_handler = redis
// session.save_path = "tcp://host:6379"
```
