93 lines
2.4 KiB
Markdown
93 lines
2.4 KiB
Markdown
# MANUAL TÉCNICO - MANUTENÇÃO PREVENTIVA E LOGS DE BANCO
|
|
|
|
**Código:** ITGINF 0022/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
|
|
Descrever as rotinas de limpeza de espaço (Vacuum/Optimize), desfragmentação e verificação de logs para evitar paradas por disco cheio ou corrupção.
|
|
|
|
---
|
|
|
|
## 3. POSTGRESQL (VACUUM)
|
|
|
|
O Postgres usa MVCC, gerando "tuplas mortas" quando dados são deletados/alterados.
|
|
|
|
### Manutenção Automática (Autovacuum)
|
|
Geralmente já vem ativo. Verifique:
|
|
```sql
|
|
SHOW autovacuum; -- Deve ser 'on'
|
|
```
|
|
|
|
### Manutenção Manual (Recuperar Espaço)
|
|
Se o banco inchou muito após um DELETÃO em massa.
|
|
1. Acesse o `psql`.
|
|
2. Rode em horário de baixo pico (Pode travar mesas se usar FULL):
|
|
```sql
|
|
-- Limpa e otimiza estatisticas (Rapido)
|
|
VACUUM ANALYZE;
|
|
|
|
-- (PERIGOSO) Recria o arquivo do disco para liberar espaço físico. Bloqueia escrita!
|
|
VACUUM FULL;
|
|
```
|
|
|
|
---
|
|
|
|
## 4. MYSQL / MARIADB (OPTIMIZE)
|
|
|
|
Tabelas InnoDB podem ficar fragmentadas.
|
|
|
|
### Otimizar Tabelas
|
|
```sql
|
|
-- Reconstrói a tabela e indices (Bloqueia a tabela durante a execução!)
|
|
OPTIMIZE TABLE nome_da_tabela;
|
|
```
|
|
|
|
### Logs Binários (Binlog)
|
|
Cuidado: Eles podem encher o disco.
|
|
1. Verifique a expiração no `my.cnf`:
|
|
```ini
|
|
binlog_expire_logs_seconds = 604800 # 7 Dias
|
|
```
|
|
2. Limpar manualmente (PURGE):
|
|
```sql
|
|
PURGE BINARY LOGS BEFORE '2023-10-01 00:00:00';
|
|
```
|
|
|
|
---
|
|
|
|
## 5. REDIS (Memory Defrag)
|
|
|
|
O Redis pode alocar memória fragmentada.
|
|
|
|
1. Verifique a fragmentação: `INFO MEMORY`
|
|
* `mem_fragmentation_ratio > 1.5` indica fragmentação alta.
|
|
2. Ativar Desfragmentação Ativa (Config):
|
|
```bash
|
|
CONFIG SET activedefrag yes
|
|
```
|
|
|
|
---
|
|
|
|
## 6. ROTAÇÃO DE LOGS (Logrotate)
|
|
|
|
Garanta que os logs de erro (`/var/log/mysql`, `/var/log/postgresql`) não estão gigantes.
|
|
Verifique se existem arquivos em `/etc/logrotate.d/`:
|
|
* `mysql-server`
|
|
* `postgresql-common`
|
|
|
|
Force uma verificação se achar que não está rodando:
|
|
```bash
|
|
sudo logrotate -f /etc/logrotate.d/mysql-server
|
|
```
|
|
|
|
## 7. VALIDAÇÃO FINAL
|
|
- [ ] PostgreSQL: `VACUUM` rodou sem erro?
|
|
- [ ] MySQL: Disco liberado após Purge de Binlogs?
|
|
- [ ] Logs antigos estão compactados (.gz)?
|