Pular para o conteúdo
Tecnologia

Replicação duplica dados para redundância e performance. Read replicas distribuem carga. Failover automático garante uptime.

Conceitos Principais

Master-Slave

Master: writes. Slaves: reads. Async replication (lag). Failover manual ou auto.

Streaming Replication

WAL (Write-Ahead Log) streaming. Continuo, low lag. PostgreSQL built-in.

Sync vs Async

Sync: sem data loss, slow writes. Async: fast writes, possível data loss. Hybrid: quorum.

Failover

Master down → promote slave. Manual: DBA. Auto: Patroni, repmgr. DNS update, app reconnect.

Passo a Passo

  1. Setup Streaming Replication: Master postgresql.conf: wal_level = replica, max_wal_senders = 3. Slave: standby.signal, primary_conninfo. Start slave.
  2. Verify Replication: Master: SELECT * FROM pg_stat_replication. Slave: SELECT pg_is_in_recovery(). Check lag: replay_lag.
  3. Read Replica Pattern: App config: writeDB = master, readDB = slave. Writes → master. Reads → slave. Load balancer para múltiplas replicas.
  4. Auto Failover: Install Patroni. etcd/consul for consensus. Patroni monitors master. Promotes slave on failure. Updates DNS/VIP.
  5. Monitor Lag: pg_stat_replication: replay_lag, write_lag. Alert se lag > 10s. Sync replication se crítico.

Boas Praticas

Recomendacoes

• Múltiplas replicas (N+2 redundancy)

• Auto failover (Patroni)

• Monitor replication lag

• Async para performance, sync para critical

• Test failover regularmente

• Connection pooling

Erros Comuns

Evite estes erros

• Single replica (not HA)

• Não monitorar lag

• Failover não testado

• Writes na replica

• Não atualizar app config em failover

Checklist

  • Streaming replication configurada
  • Replica verificada
  • Read pattern implementado
  • Auto failover ativo
  • Lag monitorado
  • Failover testado