Replikace zajišťuje vysokou dostupnost a read scaling.
Streaming replikace¶
Primary: wal_level=replica, max_wal_senders=5¶
Replica:¶
pg_basebackup -h primary -U replicator -D /var/lib/postgresql/16/main -P
primary_conninfo=’host=primary user=replicator’¶
Logical replikace¶
– Primary CREATE PUBLICATION my_pub FOR TABLE users, orders; – Subscriber CREATE SUBSCRIPTION my_sub CONNECTION ‘host=primary dbname=mydb’ PUBLICATION my_pub;
Monitoring¶
SELECT client_addr, state, sent_lsn, replay_lsn FROM pg_stat_replication; SELECT now()-pg_last_xact_replay_timestamp() AS lag;
- Streaming — HA, read replicas, celá DB
- Logical — selective tables, cross-version
Produkční doporučení¶
Pro automatický failover v produkci použijte nástroj jako Patroni nebo repmgr, který detekuje výpadek primary serveru a automaticky promóvá repliku. Bez automatického failoveru je ruční zásah nutný a může trvat minuty až hodiny.
Streaming replikace je asynchronní defaultně — replika může být několik transakcí za primary. Pro kritické systémy nastavte synchronní replikaci (synchronous_commit = on), ale počítejte s vyšší latencí zápisů. Logická replikace umožňuje selektivní replikaci konkrétních tabulek, což je užitečné pro data warehouse feeding nebo cross-version migrace. Sledujte replikační lag pomocí pg_stat_replication a nastavte alerting na lag překračující definovanou hranici.
Replikace pro HA¶
Streaming pro HA, logical pro selektivní replikaci.