Replicação Lógica
O PostgreSQL 10 introduz a replicação lógica nativa, que usa um modelo de publicação/subscrição, permitindo-nos criar publicações no nó a montante (ou publicador) e subscrições no nó a jusante (ou subscritor). Para mais detalhes sobre este tema, consulte a documentação do PostgreSQL.
Neste capítulo, vamos usar um cluster de 2 nós para demonstrar a replicação lógica
nativa do PostgreSQL 10. Note que, em cada instância do PostgreSQL, precisa de
configurar wal_level = logical e também certificar-se de que ajusta o ficheiro pg_hba.conf
para conceder acesso de replication entre os 2 nós.
Criar um ambiente de teste
Configure duas instâncias PostgreSQL 10+ da forma que preferir (Docker, uma máquina virtual, ou até mesmo duas bases de dados na mesma máquina) e configure as definições acima em cada uma.
Ligar a ambos os nós
Vamos usar o OmniDB para nos ligarmos a ambos os nós PostgreSQL. Antes de mais, preencha a informação de ligação na grelha de ligações:

Depois selecione ambas as ligações. Repare como o OmniDB percebe que está ligado ao PostgreSQL 10 e ativa um novo nó na vista em árvore da ligação atual: chama-se Logical Replication (Replicação Lógica). Dentro dele, podemos ver Publications (Publicações) e Subscriptions (Subscrições).

Criar uma tabela de teste em ambos os nós
Em ambos os nós, crie uma tabela como esta:
CREATE TABLE customers (
login text PRIMARY KEY,
full_name text NOT NULL,
registration_date timestamptz NOT NULL DEFAULT now()
)

Criar uma publicação na primeira máquina
Dentro do nó de ligação, expanda o nó Logical Replication, depois clique com o botão
direito no nó Publications, e escolha a ação Create Publication (Criar Publicação).
O OmniDB abrirá um separador de modelo SQL com o comando CREATE PUBLICATION pronto
para fazer alguns ajustes e executar:

Depois de ajustar e executar o comando, pode clicar novamente com o botão direito no nó Publications e clicar na ação Refresh (Atualizar). Verá que será criado um novo nó com o mesmo nome que deu à publicação. Ao expandir este nó, verá os detalhes e as tabelas da publicação:

Criar uma subscrição na segunda máquina
Dentro do nó de ligação, expanda o nó Logical Replication, depois clique com o botão
direito no nó Subscriptions, e escolha a ação Create Subscription (Criar Subscrição).
O OmniDB abrirá um separador de modelo SQL com o comando CREATE SUBSCRIPTION pronto
para fazer alguns ajustes e executar:

Depois de ajustar e executar o comando, pode clicar novamente com o botão direito no nó Subscriptions e clicar na ação Refresh. Verá que será criado um novo nó com o mesmo nome que deu à subscrição. Ao expandir este nó, verá os detalhes, as publicações referenciadas e as tabelas da subscrição:

Além disso, o comando CREATE SUBSCRIPTION criou um slot de replicação lógica
chamado testsub (o mesmo nome da subscrição) na primeira máquina:

Testar a replicação lógica
Para testar se a replicação está a funcionar, vamos criar alguns dados no nó 1. Clique
com o botão direito na tabela public.customers, depois aponte para Data Actions, depois clique
na ação Edit Data. Nesta grelha, pode adicionar, editar e remover
dados da tabela. Adicione 2 linhas de exemplo, como estas:

Depois, no outro nó, verifique se a tabela public.customers foi automaticamente
preenchida. Clique com o botão direito na tabela public.customers, depois aponte para Data
Actions, depois clique na ação Query Data:

Como podemos ver, ambas as linhas criadas na primeira máquina foram replicadas para a segunda máquina. Isto diz-nos que a replicação lógica está a funcionar.
Agora pode realizar outras ações, como adicionar/remover tabelas da publicação e criar uma nova publicação que publica todas as tabelas.