109 lines
2.9 KiB
Markdown
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)?
|