Logická replikace
PostgreSQL 10 zavádí nativní logickou replikaci, která používá model publikace/odběru, takže si na straně upstream (neboli publisher) můžeme vytvářet publikace a na straně downstream (neboli subscriber) odběry. Více podrobností najdete v dokumentaci PostgreSQL.
V této kapitole si nativní logickou replikaci PostgreSQL 10 předvedeme na
clusteru se 2 uzly. Na každé instanci PostgreSQL je potřeba nastavit
wal_level = logical a zároveň upravit soubor pg_hba.conf tak, aby mezi
oběma uzly udělil přístup pro replication.
Vytvoření testovacího prostředí
Sestavte si dvě instance PostgreSQL 10+ libovolným způsobem, který vám vyhovuje (Docker, virtuální stroj, nebo třeba i dvě databáze na jednom počítači) a na obou nastavte výše uvedené parametry.
Připojení k oběma uzlům
K připojení k oběma uzlům PostgreSQL použijeme OmniDB. Nejprve vyplňte informace o připojení v tabulce připojení:

Poté vyberte obě připojení. Všimněte si, že OmniDB rozpozná připojení k PostgreSQL 10 a zpřístupní ve stromovém zobrazení aktuálního připojení nový uzel nazvaný Logical Replication. Uvnitř najdeme uzly Publications a Subscriptions.

Vytvoření testovací tabulky na obou uzlech
Na obou uzlech vytvořte tabulku takto:
CREATE TABLE customers (
login text PRIMARY KEY,
full_name text NOT NULL,
registration_date timestamptz NOT NULL DEFAULT now()
)

Vytvoření publikace na prvním počítači
Uvnitř uzlu připojení rozbalte uzel Logical Replication, poté klikněte
pravým tlačítkem na uzel Publications a zvolte akci Create Publication.
OmniDB otevře záložku se SQL šablonou obsahující příkaz CREATE PUBLICATION
připravený k úpravám a spuštění:

Po úpravě a spuštění příkazu můžete znovu kliknout pravým tlačítkem na uzel Publications a zvolit akci Refresh. Uvidíte, že se vytvořil nový uzel se stejným názvem, jaký jste dali publikaci. Rozbalením tohoto uzlu uvidíte podrobnosti a tabulky patřící k publikaci:

Vytvoření odběru na druhém počítači
Uvnitř uzlu připojení rozbalte uzel Logical Replication, poté klikněte
pravým tlačítkem na uzel Subscriptions a zvolte akci Create Subscription.
OmniDB otevře záložku se SQL šablonou obsahující příkaz CREATE SUBSCRIPTION
připravený k úpravám a spuštění:

Po úpravě a spuštění příkazu můžete znovu kliknout pravým tlačítkem na uzel Subscriptions a zvolit akci Refresh. Uvidíte, že se vytvořil nový uzel se stejným názvem, jaký jste dali odběru. Rozbalením tohoto uzlu uvidíte podrobnosti, odkazované publikace a tabulky patřící k odběru:

Příkaz CREATE SUBSCRIPTION navíc na prvním počítači vytvořil slot logické
replikace nazvaný testsub (stejný název jako odběr):

Test logické replikace
Abychom ověřili, že replikace funguje, vytvořme na uzlu 1 nějaká data.
Klikněte pravým tlačítkem na tabulku public.customers, najeďte na Data
Actions a klikněte na akci Edit Data. V této tabulce můžete do tabulky
přidávat, upravovat a odstraňovat data. Přidejte 2 ukázkové řádky, takto:

Poté na druhém uzlu ověřte, zda se tabulka public.customers automaticky
naplnila. Klikněte pravým tlačítkem na tabulku public.customers, najeďte
na Data Actions a klikněte na akci Query Data:

Jak vidíme, oba řádky vytvořené na prvním počítači byly replikovány na druhý počítač. To nám říká, že logická replikace funguje.
Nyní můžete provádět další akce, jako je přidávání/odebírání tabulek z publikace nebo vytvoření nové publikace, která publikuje všechny tabulky.