Košík je prázdný

Replikace v databázovém systému PostgreSQL je proces, při kterém se data automaticky kopírují z jednoho serveru (tzv. primárního nebo master serveru) na jeden nebo více dalších serverů (tzv. sekundárních nebo slave serverů). Tento mechanismus je klíčový pro zajištění vysoké dostupnosti, zálohy dat a rozložení čtenářské zátěže mezi servery. PostgreSQL podporuje několik metod replikace, včetně logické replikace a streamové replikace.

Základní kroky nastavení streamové replikace

Streamová replikace v PostgreSQL posílá změny (WAL - Write-Ahead Logging) z primárního serveru na sekundární server v reálném čase. Pro její nastavení je třeba provést několik kroků:

1. Příprava primárního serveru

  • Konfigurace PostgreSQL.conf: Otevřete konfigurační soubor postgresql.conf na primárním serveru a nastavte:

    • wal_level na replica nebo logical.
    • max_wal_senders na počet sekundárních serverů plus několik pro zálohování a další účely.
    • wal_keep_segments na hodnotu, která určuje, kolik WAL souborů si systém má ponechat pro potřeby replikace.
    • archive_mode na on a archive_command na příkaz pro archivaci WAL souborů (pokud je třeba WAL archivaci).
  • Konfigurace pg_hba.conf: Do souboru pg_hba.conf na primárním serveru přidejte pravidla, která umožní sekundárním serverům připojit se pro replikaci. Pravidlo může vypadat například takto:

    host replication all sekundarni_server_ip/32 md5
    

 

2. Inicializace sekundárního serveru

  • Před spuštěním sekundárního serveru je třeba na něm inicializovat datový adresář pomocí nástroje pg_basebackup spuštěného na primárním serveru. Příkaz může vypadat takto:

    pg_basebackup -h primarni_server_ip -D /var/lib/postgresql/data -U replikace_uzivatel -P -v -X stream
    

Konfigurace sekundárního serveru: Na sekundárním serveru vytvořte soubor standby.signal v hlavním datovém adresáři, který signalizuje, že má server fungovat v režimu replikace. Nastavte také primary_conninfo v souboru postgresql.auto.conf nebo recovery.conf (závisí na verzi PostgreSQL), kde uvedete údaje pro připojení k primárnímu serveru, například:

primary_conninfo = 'host=primarni_server_ip port=5432 user=replikace_uzivatel password=heslo'

 

Spuštění a monitoring replikace

  • Po konfiguraci obou serverů spusťte sekundární server. Replikace by měla začít automaticky.
  • Monitorování stavu replikace lze provádět pomocí příkazů psql na primárním serveru, například příkazem select * from pg_stat_replication;.

 

Nastavení replikace v PostgreSQL vyžaduje pečlivou přípravu a konfiguraci obou, primárního a sekundárního serveru. Důležité je dbát na správné nastavení konfiguračních souborů a zabezpečení komunikace mezi servery. Po úspěšném nastavení replikace získáte systém, který je odolnější proti výpadkům a poskytuje lepší dostupnost dat.