Capítulo 31. Replicação lógica

Índice

31.1. Publicação
31.2. Subscrição
31.2.1. Gerenciamento de encaixe de replicação
31.3. Conflitos
31.4. Restrições
31.5. Arquitetura
31.5.1. Instantâneo inicial
31.6. Monitoramento
31.7. Segurança
31.8. Definições de configuração
31.9. Configuração rápida

A replicação lógica é um método de replicar objetos de dados e suas alterações, com base em sua identidade de replicação (geralmente a chave primária). É usado o termo lógica em contraste com a replicação física, que usa endereços de bloco exatos e replicação byte a byte. O PostgreSQL suporta os dois mecanismos simultaneamente, veja Alta disponibilidade, balanceamento de carga e replicação. A replicação lógica permite um controle refinado sobre a replicação de dados e a segurança.

A replicação lógica usa o modelo publicador e subscritor, com um ou mais subscritores, subscrevendo uma ou mais publicações em um nó publicador. Os subscritores obtêm os dados das publicações que subscrevem, podendo em seguida republicar os dados para permitir a replicação em cascata, ou configurações mais complexas.

A replicação lógica de uma tabela geralmente começa com a obtenção de um instantâneo dos dados no banco de dados do publicador e a cópia para o subscritor. Feito isso, as alterações no publicador são enviadas ao subscritor à medida que ocorrem em tempo real. O subscritor aplica os dados na mesma ordem que o publicador, para que a consistência transacional seja garantida para publicações em uma única subscrição. Às vezes, esse método de replicação de dados é chamado de replicação transacional.

Os casos de uso típicos para replicação lógica são:

O banco de dados subscritor se comporta da mesma forma que qualquer outra instância do PostgreSQL, podendo ser usado como publicador para outros bancos de dados definindo suas próprias publicações. Quando o subscritor for tratado como de leitura apenas pela aplicação, não haverá conflitos em uma única subscrição. Por outro lado, se houver outras escritas feitas por uma aplicação, ou por outros subscritores, no mesmo conjunto de tabelas, poderão acontecer conflitos.

Contato

CSS válido!