Instalação de Banco de Dados¶
Quase todo problema grave de banco em produção nasce na instalação: storage errado, memória mal distribuída, réplicas no mesmo host físico, nenhum teste de falha antes do primeiro cliente. Corrigir depois custa janela de manutenção; acertar antes custa uma conversa.
Esta página descreve como a InteSys instala um banco novo — do dimensionamento até a entrega documentada.
Nenhuma etapa é pulada, mesmo em cluster pequeno — o que muda é o tamanho, não o procedimento.
1. Dimensionamento¶
Dimensionamento não é escolher um plano; é responder a cinco perguntas.
| Pergunta | Por que decide a máquina |
|---|---|
| Qual o volume de dados hoje e a projeção de 24 meses? | Define disco e, principalmente, quanto do conjunto ativo cabe em RAM |
| Qual a proporção entre leitura e escrita? | Carga de leitura escala com réplicas; escrita escala com hardware e esquema |
| Qual o pico de conexões simultâneas? | Determina o pool e evita que o banco morra de too many connections |
| Qual a maior transação e a maior consulta analítica? | Define memória de trabalho e o risco de uma consulta derrubar o servidor |
| Qual RPO e RTO o negócio aceita? | Define o modo de replicação e a política de backup |
Regra prática de memória — o conjunto de dados quente deve caber no cache do banco (buffer pool no MySQL, shared buffers + cache do sistema operacional no PostgreSQL). Quando não cabe, cada consulta vira I/O e nenhum ajuste de parâmetro salva.
Storage é onde mais se erra
Banco de dados é sensível a latência de I/O, não a throughput de disco. Um volume com bom número de MB/s e latência ruim entrega desempenho pior que um disco menor e mais rápido. Toda instalação da InteSys mede latência de escrita e IOPS do volume antes de subir o banco.
2. Topologia¶
A decisão anterior a qualquer instalação: Kubernetes ou máquinas virtuais.
| Critério | Kubernetes | Máquinas virtuais |
|---|---|---|
| Provisionamento de um novo cluster | Minutos, declarativo | Automatizado, porém mais lento |
| Reconstrução de réplica | Automática, pelo operador | Automatizada com scripts |
| Ajuste fino de kernel, I/O scheduler e huge pages | Limitado pelo nó | Total |
| Familiaridade da equipe do cliente | Exige cultura Kubernetes | Operação tradicional |
| Indicado quando | A aplicação já roda em Kubernetes | O banco é o componente mais crítico e isolado |
Os detalhes de cada arranjo estão nos guias de alta disponibilidade: MySQL, PostgreSQL, ClickHouse.
Número de nós — a instalação padrão tem três nós de banco (ou três votantes, quando o consenso é externo). Dois nós não formam quórum e transformam qualquer partição de rede em decisão manual.
3. Provisionamento¶
Nada é instalado à mão.
- Infraestrutura como Código — Terraform para os recursos, Ansible ou operador Kubernetes para o banco. O cluster é reprodutível a partir do repositório.
- Anti-affinity obrigatória — um nó de banco por host físico. Três réplicas no mesmo hipervisor não são alta disponibilidade, são uma cópia triplicada do mesmo ponto de falha.
- Volumes dedicados — dados, log de transação e sistema operacional em volumes separados, com o log de transação em armazenamento de baixa latência.
- Versão fixada — versão maior e menor declaradas explicitamente; atualização é evento planejado, nunca efeito colateral de um
restart.
# Trecho ilustrativo de manifesto — a topologia é declarada, não digitada no servidor
spec:
instances: 3
postgresql:
parameters:
shared_buffers: "8GB"
max_connections: "200"
storage:
size: 500Gi
storageClass: fast-nvme
backup:
retentionPolicy: "30d"
4. Hardening¶
Um banco recém-instalado é um alvo. O padrão de entrega inclui:
- TLS obrigatório — conexões de aplicação e de replicação cifradas; certificado gerenciado e rotacionado.
- Sem exposição pública — o banco escuta em rede privada. Acesso administrativo passa por bastion ou VPN, nunca por porta aberta na internet.
- Contas mínimas — usuário da aplicação com privilégio de dados, sem
SUPER/SUPERUSER; contas administrativas separadas e nominais. - Senhas fora do código — credenciais em Kubernetes Secret ou cofre, injetadas por variável de ambiente.
- Network policy / firewall — apenas as origens previstas alcançam a porta do banco.
- Auditoria de conexão — registro de quem conectou, de onde e quando.
- Criptografia em repouso — volumes criptografados, incluindo os usados por snapshot.
5. Validação antes do go-live¶
Um cluster só é entregue depois de provar que funciona sob estresse e sob falha.
- Teste de carga — carga sintética no perfil real da aplicação, medindo latência de p95 e p99, não média.
- Teste de falha — derrubamos o primário em ambiente controlado e medimos o RTO real. Se o número não bate com o acordado, a topologia muda antes da produção.
- Teste de restauração — o primeiro backup é restaurado em um servidor limpo e conferido. Backup nunca restaurado não conta.
- Verificação de alertas — cada alerta é disparado artificialmente uma vez, para confirmar que chega a quem está de plantão.
O que é entregue junto¶
| Entregável | Conteúdo |
|---|---|
| Documento de topologia | Nós, papéis, endpoints, versões e parâmetros relevantes |
| Runbook | Failover, reconstrução de réplica, restauração, escalonamento |
| Painéis e alertas | Métricas de replicação, conexões, latência, espaço em disco |
| Política de backup | Frequência, retenção, destino e resultado do último teste de restauração |
| Credenciais | Entregues por canal seguro, com contas nominais para o time do cliente |
Instalação e migração andam juntas
Se o banco já existe em outro lugar, a instalação é a primeira metade do trabalho e a migração é a segunda. O cluster novo é validado antes de qualquer dado de produção ser copiado.
Páginas Relacionadas¶
- Migração — Trazer o banco existente para o cluster novo
- Replicação — Modos e topologias configurados na instalação
- Backup e Restauração — Política definida no dia um
- Alta Disponibilidade MySQL · PostgreSQL · ClickHouse
- Datacenters InteSys — Onde o cluster é provisionado