Saltar para o conteúdo principal
Sistemas digitais4 min de leitura

Edição de 02/10: PostgreSQL — a replicação não decide quem escreve

Schema, sequências e reconciliação final devem entrar no contrato de passagem; o retorno muda de natureza quando o destino aceita novas operações.

Atualizado
Autoria
Redação Velqory
Dia recuperado
2026-10-02
Publicação real
2026-10-05
Revisão editorial e verificação
05/10/2026 · Europe/Lisbon
Natureza
Análise retrospetiva publicada a 5 de outubro; não representa publicação original nessa data. Propostas operacionais originais da Velqory, não testadas; nenhum ensaio ou experiência interna é alegado.
Revisão
Revalidar documentação e critérios antes de qualquer intervenção e quando mudar a versão ou a configuração.
Pessoa aponta para um comutador entre dois equipamentos de rede, com uma unidade externa separada à frente.
Pessoa aponta para um comutador entre dois equipamentos de rede, com uma unidade externa separada à frente. Cena conceptual gerada; não documenta um evento, produto ou ensaio real.Imagem gerada por IA sob direção editorial da Velqory.

Em resumo

Schema, sequências e reconciliação final devem entrar no contrato de passagem; o retorno muda de natureza quando o destino aceita novas operações.

  • Prepare schema e sequências como frentes próprias da passagem.
  • Reconcilie as últimas operações após suspender a admissão de escritas.
  • Bloqueie retorno após novas escritas até demonstrar como serão reconciliadas.

Quem pode escrever durante a passagem?

Esta edição de referência de 2 de outubro é uma análise retrospetiva publicada em 5 de outubro. Não anuncia uma migração, uma versão nova ou um teste feito pela Velqory. Dirige-se a administradores e responsáveis de aplicação que ponderam uma passagem de serviço apoiada em replicação lógica PostgreSQL.

A pergunta não é apenas se as linhas chegaram ao destino. É quem pode aceitar a próxima escrita e que condições permitem devolver essa autoridade à origem. Propomos um contrato de passagem com estados explícitos: preparação, escritas suspensas, reconciliação, destino autorizado e eventual retorno. A proposta não foi testada e exige adaptação às versões reais.

O contrato de dados inclui o schema

A documentação PostgreSQL 18 informa que o schema e os comandos DDL não são replicados. Quando os dados recebidos não cabem no schema do subscritor, a replicação dá erro até o schema ser atualizado. É uma limitação documentada, não uma falha observada neste artigo.

Propomos que a equipa de aplicação declare o schema esperado para cada tabela no âmbito e suspenda mudanças concorrentes durante a janela acordada. O administrador compara definição e uso efetivo; não basta contar linhas. Uma coluna introduzida na origem sem preparação do destino deve bloquear a passagem, não desencadear uma improvisação depois de abrir o tráfego.

Uma linha copiada não atualiza a sequência

O mesmo capítulo distingue os valores de colunas serial ou identity, copiados com as linhas, do estado das sequências, que não é replicado. Para uma passagem ao subscritor, a documentação exige atualizar as sequências.

Num cenário hipotético, as encomendas estão presentes, mas a sequência que servirá a próxima inserção ficou para trás. Propomos inventariar sequências e reservas de identificadores, escolher uma regra segura por aplicação e verificar a próxima escrita num ensaio autorizado. Não oferecemos uma receita universal baseada apenas no maior identificador visível. Valores em cache, reservas e convenções internas devem entrar na decisão do responsável.

Observação de workers não é autorização de passagem

A documentação de monitorização identifica pg_stat_subscription como a vista de informação dos workers da subscrição. O número de workers depende do estado, incluindo a sincronização inicial. A existência de atividade não é o critério de aceitação que propomos.

Peça à equipa um plano de evidência para o atraso e para a aplicação das últimas operações aceites. No desenho Velqory, suspende-se a admissão de novas escritas, verifica-se o fecho das operações em curso e reconcilia-se um conjunto final identificado. Um indicador isolado de atraso aparentemente nulo não substitui essa prova. Fixe previamente o que fará se a reconciliação exceder a janela.

O destino precisa de um dono de escrita

O capítulo sobre conflitos avisa que alterações replicadas podem atualizar dados modificados localmente no subscritor e que violações de constraints podem parar a replicação. Não trate escritas locais no destino como uma validação inofensiva.

Propomos um único dono autorizado de escrita em cada estado do plano. Inclua aplicações, tarefas agendadas, integrações e acessos administrativos na revisão. Antes da autorização, o destino só deve receber as operações previstas no desenho. Uma escrita inesperada deve interromper a passagem e abrir reconciliação. Registe quem decidiu, que ligações foram revistas e qual o conjunto de operações final.

O limite de retorno deve ser escrito antes da mudança

A matriz é uma proposta original não testada. Depois de o destino aceitar novas operações, não autorize um retorno só porque a origem ainda arranca. Exija uma decisão sobre essas operações, as sequências e os efeitos externos; sem reconciliação demonstrada, o retorno permanece bloqueado.

Preserve a origem segundo o plano aprovado e defina quem pode abandonar a passagem antes da abertura. Uma promessa de rollback automático não é evidência. O resultado útil desta análise é uma fronteira de decisão auditável, não uma garantia de interrupção curta ou ausência de perda.

Contrato de passagem e retorno

Condições propostas pela Velqory; não são resultados medidos.

EstadoResponsávelEvidênciaPassa / falha
PreparaçãoAplicação e DBASchema e inventário de sequênciasPassa com âmbito compatível; falha com definição por resolver.
Fecho de escritasOperaçõesAdmissão suspensa e operações finaisPassa com conjunto final identificado; falha com escritor desconhecido.
Autorização do destinoDBA e dono do serviçoReconciliação e regra de identificadoresPassa com provas aceites; falha com lacuna ou conflito.
Retorno após novas escritasDono do serviçoDestino das novas operações e efeitos externosPassa com reconciliação demonstrada; falha sem plano de dados.

Consultadas na data de atualização indicada.

  1. 01PostgreSQL 18 — Logical Replication: RestrictionsPostgreSQL Global Development Group · SYS-POSTGRES
  2. 02PostgreSQL 18 — Logical Replication: MonitoringPostgreSQL Global Development Group · SYS-POSTGRES
  3. 03PostgreSQL 18 — Logical Replication: ConflictsPostgreSQL Global Development Group · SYS-POSTGRES