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

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

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.


Interessieren Sie sich für dieses Thema oder benötigen Sie Beratung?
Ich unterstütze Sie gerne bei Ihren Projekten. Kontaktieren Sie mich für eine strategische 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