manuais-e-documentacao-itguys/documentacao bancos de dados/[Nível 1] Procedimento de B...

109 lines
2.9 KiB
Markdown

# MANUAL TÉCNICO - BACKUP E RESTORE MANUAL (DUMP)
**Código:** ITGSUP 0021/26 | **Classificação:** RESTRITO
**Responsável:** João Pedro Toledo Gonçalves | **Data:** {{DATA_ATUAL}}
## 1. HISTÓRICO DE REVISÃO
| Data | Versão | Descrição | Autor |
| :--- | :--- | :--- | :--- |
| {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves |
## 2. OBJETIVO
Executar backups pontuais (Dumps) e restaurações de emergência em bancos de dados, incluindo a exportação segura para servidores remotos (Storage/NFS).
## 3. PRÉ-REQUISITOS
* [ ] Espaço em disco suficiente para o dump.
* [ ] Senhas de administração dos bancos.
---
## 4. POSTGRESQL (pg_dump)
### Backup (Exportar)
```bash
# Backup de UM banco
pg_dump -U usuario_admin -h localhost nome_do_banco > backup.sql
# Backup de TODOS os bancos (Cluster)
pg_dumpall -U usuario_admin > backup_full.sql
```
### Restore (Importar)
```bash
# Se o banco ja existe (Sobrescreve estruturas)
psql -U usuario_admin -d nome_do_banco < backup.sql
# Se foi gerado com pg_dumpall
psql -U usuario_admin -f backup_full.sql postgres
```
---
## 5. MYSQL / MARIADB (mysqldump)
### Backup (Exportar)
```bash
# Backup de UM banco
mysqldump -u root -p nome_do_banco > backup.sql
# Backup de VÁRIOS bancos
mysqldump -u root -p --databases db1 db2 > backup_db1_db2.sql
```
### Restore (Importar)
```bash
# O banco DEVE existir antes (mysqladmin create nome_do_banco)
mysql -u root -p nome_do_banco < backup.sql
```
---
## 6. REDIS (RDB Snapshot)
O Redis trabalha em memória, mas salva arquivos `.rdb`.
### Backup (Snapshot Force)
1. Acesse o CLI: `redis-cli`
2. Execute: `BGSAVE` (Salva em background).
3. Verifique o diretório de dados (geralmente `/var/lib/redis/dump.rdb`).
4. Copie o arquivo `dump.rdb` para local seguro.
### Restore
1. Pare o serviço: `systemctl stop redis`
2. Substitua o arquivo `dump.rdb` pelo seu backup.
3. Garanta as permissões: `chown redis:redis dump.rdb`
4. Inicie o serviço: `systemctl start redis`
---
## 7. EXPORTAÇÃO REMOTA (OFF-SITE)
> ⚠️ **IMPORTANTE:** Nunca deixe o backup apenas no próprio servidor. Mova-o.
### Opção A: Cópia via SCP (Windows/Linux Seguro)
Envia o arquivo para outro servidor via SSH.
```bash
scp backup.sql usuario@192.168.1.50:/home/usuario/backups/
```
### Opção B: Montagem NFS (Storage Linux)
Se você tem um storage montado em `/mnt/backup`:
```bash
# Gera direto na pasta remota
pg_dump -U postgres meu_banco > /mnt/backup/pg_$(date +%F).sql
```
### Opção C: Montagem SMB/CIFS (Windows Share)
Para enviar para uma pasta do Windows Server.
1. Instale: `apt install cifs-utils`
2. Monte:
```bash
mount -t cifs -o username=user,password=pass //servidor/share /mnt/windows
```
3. Copie: `cp backup.sql /mnt/windows/`
## 8. VALIDAÇÃO FINAL
- [ ] O arquivo `.sql` foi gerado e tem tamanho maior que 0?
- [ ] O arquivo está salvo em local externo (SCP/NFS)?