Replikacja strumieniowa PostgreSQL z fizycznym slotem replikacji

Przetłumaczone automatycznie z angielskiego. Przeczytaj oryginał

Utwórz dedykowanego użytkownika do replikacji:

Text
CREATE ROLE replica WITH REPLICATION PASSWORD 'xxxYYYzzz' LOGIN;

Następnie dodaj fizyczny slot replikacji, aby zachować synchronizację z WAL. Bez niego, jeśli aplikowanie logów na replice będzie zbyt wolne, serwer główny może usunąć logi, których replika jeszcze nie skonsumowała, co doprowadzi do zerwania replikacji:

Text
select pg_create_physical_replication_slot('replica');

Następnie zatrzymaj serwer repliki i usuń folder PGDIR/VERSION/main. Rozpocznij kopiowanie:

Text
pg_basebackup -D /var/lib/postgresql/14/main -P --wal-method=stream -R --checkpoint=fast -U replica --slot=replica -W -h a.b.c.d

Wyrównaj rozbieżności w konfiguracji między serwerem głównym a repliką, takie jak limit połączeń, a następnie uruchom serwer repliki.

Aby sprawdzić status replikacji, uruchom na serwerze głównym:

SQL
 select * from pg_replication_slots;
Wersja Markdown

Wszystkie treści na tej stronie są udostępniane na licencji Uznanie autorstwa – Użycie niekomercyjne – Bez utworów zależnych 4.0 Międzynarodowe (CC BY-NC-ND 4.0). Cytuj jako: Michał Sobczak, „Replikacja strumieniowa PostgreSQL z fizycznym slotem replikacji”, 24 stycznia 2025, https://michalasobczak.pl/pl/posts/postgresql-streaming-replication-with-physical-replication-slot.html