2.4 KiB
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:
SHOW autovacuum; -- Deve ser 'on'
Manutenção Manual (Recuperar Espaço)
Se o banco inchou muito após um DELETÃO em massa.
- Acesse o
psql. - Rode em horário de baixo pico (Pode travar mesas se usar FULL):
-- 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
-- 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.
- Verifique a expiração no
my.cnf:binlog_expire_logs_seconds = 604800 # 7 Dias - Limpar manualmente (PURGE):
PURGE BINARY LOGS BEFORE '2023-10-01 00:00:00';
5. REDIS (Memory Defrag)
O Redis pode alocar memória fragmentada.
- Verifique a fragmentação:
INFO MEMORYmem_fragmentation_ratio > 1.5indica fragmentação alta.
- Ativar Desfragmentação Ativa (Config):
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-serverpostgresql-common
Force uma verificação se achar que não está rodando:
sudo logrotate -f /etc/logrotate.d/mysql-server
7. VALIDAÇÃO FINAL
- PostgreSQL:
VACUUMrodou sem erro? - MySQL: Disco liberado após Purge de Binlogs?
- Logs antigos estão compactados (.gz)?