0Pricing
SQL Academy · Aula

Replicação em fluxo e WAL

Configure a replicação física em fluxo baseada em WAL, monitore o atraso e configure réplicas síncronas para escritas sem perda de dados.

Replicação em fluxo e WAL é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.

Por que replicar?

A replicação atende a vários objetivos ao mesmo tempo:

  • HA — sobreviver à falha do primário
  • Escalonamento de leitura — transferir consultas de leitura para as réplicas
  • Backup / PITR — arquivamento contínuo
  • Distribuição geográfica — réplicas próximas dos usuários

WAL: registro de escrita antecipada

Cada escrita vai primeiro para o WAL. O WAL garante a durabilidade e é a base da replicação: transmitir o WAL para uma réplica → a réplica reproduz o WAL → a réplica fica atualizada.

Replicação física por fluxo

Fluxo de WAL byte a byte do primário para a réplica:

  • A réplica é uma cópia binária do primário
  • Mesma versão do PostgreSQL
  • Cluster inteiro replicado (todos os bancos de dados e todas as tabelas)
  • Somente leitura

Configuração: primário

Configure o primário em postgresql.conf:

wal_level = replica
max_wal_senders = 10
wal_keep_size = 1GB

-- pg_hba.conf: allow replication connections
host replication replicator 10.0.0.0/24 md5

Configuração: réplica

Crie o backup base e inicie com primary_conninfo:

pg_basebackup -h primary -D /var/lib/postgresql/data -U replicator -W -X stream -P

-- postgresql.conf on replica:
primary_conninfo = 'host=primary port=5432 user=replicator password=...'

-- Touch standby.signal file and start:
touch /var/lib/postgresql/data/standby.signal

Síncrona versus assíncrona

  • Assíncrona (padrão) — o primário confirma a transação sem esperar; a réplica pode ficar atrasada
  • Síncrona — o primário espera a confirmação da réplica antes de COMMIT; não há perda de dados, mas a operação é mais lenta
-- Synchronous configuration on primary:
synchronous_commit = on
synchronous_standby_names = 'replica1, replica2'

Atraso da replicação

As réplicas assíncronas ficam atrás do primário. Monitore:

SELECT client_addr, state, sent_lsn, write_lsn, replay_lsn,
       pg_wal_lsn_diff(sent_lsn, replay_lsn) AS replay_lag_bytes
FROM pg_stat_replication;

Slots de replicação

Os slots garantem que o primário retenha o WAL até que a réplica o tenha consumido:

SELECT pg_create_physical_replication_slot('replica1');

-- On replica:
primary_slot_name = 'replica1'

Armadilha dos slots

Se uma réplica se desconectar e nunca voltar a se conectar, o slot impedirá a limpeza do WAL — o disco ficará cheio. Exclua os slots não utilizados:

SELECT pg_drop_replication_slot('replica1');

Réplicas em cascata

Uma réplica também pode transmitir o WAL para outras réplicas — reduzindo a carga no primário.

Standby de leitura

Por padrão, as réplicas aceitam consultas somente de leitura (hot_standby = on). Consultas de leitura longas na réplica podem atrasar a reprodução do WAL; ajuste max_standby_streaming_delay.

Promoção

Para transformar uma réplica no novo primário:

pg_ctl promote -D /var/lib/postgresql/data

-- Or in SQL:
SELECT pg_promote();

Recapitulação

Replicação por fluxo = envio e reprodução do WAL.

  • Física e idêntica em nível binário
  • Assíncrona por padrão; síncrona para não perder dados
  • Os slots retêm o WAL, mas exigem cuidado
  • A promoção transforma uma réplica em primário

Verificação rápida

Qual é o principal risco de NÃO usar um slot de replicação para uma réplica por fluxo?

Perguntas Frequentes

A aula “Replicação em fluxo e WAL” é grátis?

Sim — o texto completo de “Replicação em fluxo e WAL” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.

O que vou aprender em “Replicação em fluxo e WAL”?

Configure a replicação física em fluxo baseada em WAL, monitore o atraso e configure réplicas síncronas para escritas sem perda de dados. Você pratica SQL Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar SQL Academy?

Nenhuma experiência prévia é necessária. SQL Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Replicação em fluxo e WAL”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de SQL Academy?

Sim. Cada aula de SQL Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Replicação em fluxo e WAL
  2. Replicação lógica para fragmentação
  3. Failover e eleição do líder (Patroni, Stolon)
  4. Réplicas de leitura e roteamento de conexões
← Voltar para SQL Academy