PostgreSQL-Replikation einrichten: Eine Anleitung für Failover und Read-Replicas.

PostgreSQL-Replikation einrichten: Eine Anleitung für Failover und Read-Replicas.

3 Min. Lesezeit

Ein technischer Leitfaden zur Konfiguration von Streaming-Replikation in PostgreSQL, um die Ausfallsicherheit zu erhöhen und die Lese-Last zu verteilen.

PostgreSQL Replikation: Skalierbarkeit und Ausfallsicherheit meistern

Für geschäftskritische Anwendungen ist eine einzelne Datenbank-Instanz ein “Single Point of Failure”. Fällt der Server aus, steht das gesamte Unternehmen still. Die Lösung lautet Replikation: Die kontinuierliche Übertragung von Daten auf eine oder mehrere Standby-Instanzen. In diesem Beitrag zeige ich Ihnen, wie ich PostgreSQL-Replikation einrichte, um sowohl die Ausfallsicherheit (High Availability) als auch die Lese-Performance (Read Scaling) zu verbessern.

1. Physische Streaming Replikation: Der Goldstandard

Dies ist die gängigste Methode in der PostgreSQL-Welt. Der Primär-Server sendet sein Write-Ahead Log (WAL) in Echtzeit an die Standby-Server.

  • Synchron vs. Asynchron:
    • Asynchron (Standard): Der Primär-Server bestätigt den Schreibvorgang sofort. Ein minimaler Datenverlust beim Ausfall ist möglich, aber die Performance ist maximal.
    • Synchron: Der Primär-Server wartet, bis mindestens ein Standby den Erhalt der Daten bestätigt hat. Dies garantiert Null Datenverlust (RPO=0), erhöht aber die Latenz bei Schreibvorgängen.

2. Read-Replicas zur Lastverteilung

Wenn Ihr Go-Backend viele Leseanfragen hat (z.B. Analytics oder Suchen), können Sie diese auf die Standby-Server (Read Replicas) umleiten.

  • Vorteil: Der Primär-Server wird entlastet und kann sich voll auf Schreibvorgänge konzentrieren.
  • Umsetzung: In der Go-Anwendung nutzen wir zwei Connection-Pools: Einen für Schreibzugriffe (Primär) und einen (mit Load Balancing) für Lesezugriffe (Replicas).

3. Failover-Management mit Patroni und etcd

Replikation allein bietet noch kein automatisches Failover. Wenn der Primär-Server stirbt, muss ein Standby zum neuen Master befördert werden.

  • Patroni: Ich nutze Patroni als Orchestrierungs-Tool. Es überwacht die PostgreSQL-Instanzen und nutzt einen verteilten Konfigurationsspeicher (DCS) wie etcd, um den Status des Clusters zu verwalten.
  • Vorteil: Fällt der Master aus, erkennt Patroni dies sofort, wählt einen neuen Master und konfiguriert die restlichen Standbys automatisch um.

4. Backup-Strategie in Replikations-Clustern

Ein Standby-Server ist kein Backup! Ein versehentliches DELETE wird sofort auf alle Replicas übertragen.

  • WAL-Archivierung: Auch in einem Cluster nutze ich Tools wie pgBackRest, um die WAL-Dateien kontinuierlich in einen Cloud-Speicher (S3) zu archivieren. So können wir jederzeit eine neue Instanz von Grund auf hochziehen oder Point-in-Time-Recovery (PITR) durchführen.

Fazit: Keine Angst vor dem Server-Ausfall

PostgreSQL-Replikation ist das Fundament für moderne, hochverfügbare Enterprise-Architekturen. Durch die Kombination von Streaming Replikation für die Datensicherheit, Read-Replicas für die Skalierung und Tools wie Patroni für das automatisierte Failover bauen wir Datenbank-Cluster, die auch unter extremen Bedingungen stabil bleiben.


Planen Sie den Aufbau eines hochverfügbaren PostgreSQL-Clusters oder möchten Sie Ihre Lese-Performance steigern?
Ich unterstütze Sie bei der Konzeption und Einrichtung von Replikations-Szenarien und dem Management Ihrer Datenbank-Infrastruktur. Kontaktieren Sie mich für eine Architektur-Beratung.

Interesse an einer Lösung?

Ich unterstütze Unternehmen und Verbände bei der digitalen Transformation. Erfahre mehr über meine Softwareentwicklung oder lass dich im Bereich DevSecOps beraten.

Beratungstermin vereinbaren