SafeKit durchsuchen

PostgreSQL-Hochverfügbarkeit mit SafeKit: Installieren Sie das postgresql.safe-Modul für Failover

Schnellinstallationsanleitung für Hochverfügbarkeit für PostgreSQL

In dieser Anleitung wird erläutert, wie Sie eine einrichten Spiegelcluster für PostgreSQL unter Verwendung von SafeKit, wodurch automatisches Failover und synchrone Replikation gewährleistet werden, ohne dass gemeinsamer Speicher erforderlich ist.

Für Hilfe können Sie verwenden SafeKit AI 🤖.

1. Übersicht

  • Architektur: Verwendet ein Zwei-Knoten-System (primär/sekundär).
  • Datenschutz: Implementiert synchrone Echtzeitreplikation für Null Datenverlust (RPO=0).

2. Installation

  • Software: Installieren Sie die SafeKit-Engine auf beiden Servern.
  • Modul: Laden Sie die vorkonfigurierte Datei herunter postgresql.safe.safe Anwendungsmodul.

3. Konfiguration

  • Webkonsole: Konfigurieren Sie die spezifischen Ordner, die die PostgreSQL-Dateien enthalten.
  • Überwachung: Beginnen Sie mit der Überwachung und dem Schutz der PostgreSQL-Anwendung.

SafeKit High Availability Limitations

Limit / RequirementReason & ImpactRecommended Alternative
Replikationsgröße: Einige TBResynchronisationszeit nach einem Ausfall (Schritt 3):
• 1-Gb/s-Netzwerk ≈ 3 Stunden / TB
• 10-Gb/s-Netzwerk ≈ 1 Stunde / TB (abhängig von der Festplattenschreibleistung)
• Verwenden Sie externen Shared Storage (teurer, komplexer).
Dateianzahl: < 1.000.000 Dateien• Leistung der Resynchronisationszeit nach einem Ausfall (Schritt 3).
• Zeit, um jede Datei zwischen beiden Knoten zu überprüfen.
• Platzieren Sie die vielen zu replizierenden Dateien in einer virtuellen Festplatte / einer virtuellen Maschine.
• In diesem Fall werden nur die Dateien repliziert und resynchronisiert, die die virtuelle Festplatte / die virtuelle Maschine repräsentieren.
Failover-Kapazität: ≤ 32 VMs• Jede VM läuft in einem unabhängigen Mirror-Modul.
• Maximal 32 Mirror-Module, die auf demselben Cluster laufen.
• Verwenden Sie einen externen Shared Storage und eine andere VM-Cluster-Lösung (teurer, komplexer).
Netzwerkarchitektur: LAN/VLAN-Netzwerk zwischen entferntem Standorten• Automatisches Failover der virtuellen IP-Adresse mit 2 Knoten im selben Subnetz.
• Gute Bandbreite für die Resynchronisation (Schritt 3).
• Geringe Latenz für synchrone Replikation: typischerweise < 5 ms RTT; höhere Werte sollten anhand der Schreibrate der Anwendung validiert werden.
• Verwenden Sie einen Load Balancer für die virtuelle IP-Adresse, wenn sich die 2 Knoten in 2 Subnetzen befinden (von SafeKit unterstützt, insbesondere in der Cloud).
• Verwenden Sie Backup-Lösungen mit asynchroner Replikation für Netzwerke mit hoher Latenz.

Überblick über die SafeKit / PostgreSQL-Lösung

Die Lösung wird hier beschrieben: 💡Die einfachste PostgreSQL-Hochverfügbarkeit: 2-Knoten-synchrone Replikation und Failover.

Installation der SafeKit / PostgreSQL-Lösung unter Windows und Linux (postgresql.safe)

Voraussetzungen

  • Sie müssen PostgreSQL auf zwei Knoten installieren (virtuelle Maschinen oder physische Server).

Paketinstallation auf Windows

  • Laden Sie die kostenlose Version von SafeKit herunter und installieren Sie sie auf 2 Windows-Knoten.
    Hinweis: Die kostenlose Version enthält alle SafeKit-Funktionen. Am Ende der Testversion können Sie dauerhafte Lizenzschlüssel aktivieren, ohne das Paket zu deinstallieren.
  • Wählen Sie nach Abschluss der Paketinstallation aus Set console credentials and firewall rules now und konfigurieren Sie ein Passwort für die admin Benutzer der SafeKit-Konsole.
    Legen Sie auf allen Knoten das gleiche Passwort fest.
  • Von Antiviren-Scans ausschließen C:/safekit/ (das Standardinstallationsverzeichnis) und alle replizierten Ordner die Sie definieren werden.
    Antivirenprogramme können mit SafeKit aufgrund der engen Integration in das Betriebssystem, virtuellen IP-Mechanismen, Echtzeitreplikation und Neustart kritischer Dienste vor Erkennungsproblemen stehen.

Laden Sie SafeKit (Windows) > herunter

Modulinstallation auf Windows

  • Laden Sie das Modul postgresql.safe herunter. Das Modul ist kostenlos. Es enthält die Dateien userconfig.xml und die Neustartskripte.
  • Setzen postgresql.safe unter C:/safekit/Application_Modules/generic.

Laden Sie postgresql.safe (Windows) > herunter

Paketinstallation auf Linux

  • Installieren Sie die kostenlose Version von SafeKit auf 2 Linux-Knoten. Hinweis: Die kostenlose Testversion umfasst alle SafeKit-Funktionen. Am Ende der Testversion können Sie dauerhafte Lizenzschlüssel aktivieren, ohne das Paket zu deinstallieren.
  • Nachdem Sie das safekit_xx.bin-Paket heruntergeladen haben, führen Sie es aus, um das rpm- und das safekitinstall-Skript zu extrahieren, und führen Sie dann das aus safekitinstall Skript
  • Antwort ja zur automatischen Firewall-Konfiguration
  • Legen Sie das Passwort für die Webkonsole und den Standardbenutzer fest admin. Legen Sie auf allen Knoten das gleiche Passwort fest.

Laden Sie SafeKit (Linux) > herunter

Modulinstallation auf Linux

  • Laden Sie das Modul postgresql.safe herunter.
    Das Modul ist kostenlos. Es enthält die Dateien userconfig.xml und die Neustartskripte.
  • Setzen postgresql.safe unter /opt/safekit/Application_Modules/generic/.

Download postgresql.safe (Linux) >

Schritt-für-Schritt-Konfiguration der SafeKit / PostgreSQL-Lösung

Voraussetzungen

  • PostgreSQL-Anwendung auf 2 Knoten installiert.
  • Die gesamten replizierten Daten sind auf einige Terabyte begrenzt – darüber hinaus wird die Zeit für die Neusynchronisierung erheblich.
  • Mindestens 1 Gbit/s Verbindung zwischen Knoten (10 Gbit/s empfohlen für eine schnellere Neusynchronisierung).
  • IP-Failover erfordert beide Knoten auf demselben LAN oder erweiterten LAN (L2) – geroutete L3-Netzwerke werden nicht unterstützt (außer mit 🛠️ cloud-Lastausgleichsmodulen).

1. Starten Sie die SafeKit-Konsole

  • Starten Sie die Webkonsole in einem Browser auf einem Clusterknoten, indem Sie eine Verbindung zu http://localhost:9010 herstellen.
  • Geben Sie als Benutzernamen admin und das bei der Installation festgelegte Passwort ein.

Sie können die Konsole auch in einem Browser auf einer Workstation außerhalb des Clusters ausführen.

⚠️ Die Konfiguration von SafeKit erfolgt auf beiden Knoten über einen einzigen Browser.

ℹ️ Informationen zum Sichern der Webkonsole finden Sie unter 🛠️ 11. Sichern des SafeKit-Webdienstes im Benutzerhandbuch.

Starten Sie die SafeKit-Webkonsole, um den PostgreSQL-Cluster zu konfigurieren

2. Knotenadressen konfigurieren

  • Geben Sie die Knotenadressen IP ein, drücken Sie Tab key, um die Konnektivität zu überprüfen und Knotennamen einzugeben. Wenn entweder node1 oder node2 eine rote Farbe hat, überprüfen Sie die Konnektivität des Browsers zu beiden Knoten und überprüfen Sie die Firewall auf beiden Knoten auf 🛠️ Fehlerbehebung.
  • Klicken Sie dann auf Save and apply, um die Konfiguration zu speichern.
  • Überprüfen Sie die Success ✅-Meldung auf beiden Knoten.
  • Wenn die Konfiguration Failure ❌ auf einem Knoten auftritt, öffnen Sie das Akkordeon ▼ für diesen Knoten und überprüfen Sie die Meldungen. Beachten Sie, dass Sie als Hilfe den SafeKit AI 🤖 verwenden können.

ℹ️ Wenn Sie möchten, können Sie ein neues LAN and nodes (zuerst ➕) hinzufügen, um einen zweiten Heartbeat und ein dediziertes Replikationsnetzwerk zu erstellen.

ℹ️ Wenn Sie auf Advanced configuration klicken, wird die cluster.xml-Datei angezeigt. Diese Datei wird automatisch von der Konsole gefüllt und auf den Knoten bereitgestellt.

Geben Sie die Knoten des PostgreSQL-Clusters ein

3. Wählen Sie ein Modul aus

  • Klicken Sie in New module auf das Modul postgresql.safe.

ℹ️ Im blauen Banner oben steht 🛜 node1 für den Konsolenverbindungsknoten. Dieser Knoten leitet Anfragen bei Bedarf an node2 weiter.

ℹ️ Die Konsole sucht xxx.safe im Application_Modules/generic/ Verzeichnis auf dem Verbindungsknoten (node1), wenn Sie dort während der Installation ein Modul platziert haben.

Wählen Sie das Modul für PostgreSQL

4. Konfigurieren Sie das Modul

  • Wählen Sie in Module startup at boot einen automatischen Start des Moduls beim Booten ohne Verzögerung.
  • Geben Sie in Macros / SERVICES die Dienstnamen Ihrer Anwendung in der Startreihenfolge ein, getrennt durch Kommas. Sehen Sie sich diesen Screenshot für ein visuelles Beispiel der Milestone XProtect-Dienste an 🖼️.
  • In Heartbeat networks sollten Sie über ein einzelnes Heartbeat-Netzwerk verfügen, in dem die Replikation durchgeführt wird. Wenn Sie in Schritt 2 einen privaten LAN hinzugefügt haben, können Sie zwei Heartbeats mit dem Replikationsfluss auf dem privaten LAN konfigurieren.
  • Geben Sie in Virtual IP addresses eine virtuelle IP-Adresse ein. Eine virtuelle IP-Adresse ist eine Standard-IP-Adresse im selben IP-Netzwerk (gleiches Subnetz) wie die IP-Adressen beider Knoten.
    Anwendungsclients müssen mit der virtuellen IP-Adresse (oder dem DNS-Namen, der der virtuellen IP-Adresse zugeordnet ist) konfiguriert werden.
    Bei einem Ausfall wird die virtuelle IP-Adresse automatisch umgeschaltet.
  • Legen Sie in Replicated directories die Pfade der zu replizierenden Verzeichnisse fest. Überprüfen Sie, ob sie auf beiden Knoten vorhanden sind und die Anwendungsdaten enthalten.
    Daten- und Protokollreplikation sind für eine Datenbank unerlässlich.
    Sie können bei Bedarf weitere replizierte Verzeichnisse erstellen.
    In diesem Screenshot finden Sie ein visuelles Beispiel der Milestone XProtect SQL-Replikation 🖼️.
  • In Checkers können Sie bei Bedarf Prüfer konfigurieren, z. B. Prozessüberwachung, benutzerdefinierte Prüfer, TCP, Ping oder Split-Brain-Prüfer.
    Wenn beispielsweise ein Prozessname in Monitored processes/services angezeigt wird, wird dieser im Fehlerfall mit einer Neustartaktion überwacht. Die Konfiguration eines falschen Prozessnamens führt dazu, dass das Modul direkt nach dem Start stoppt.

ℹ️ Wenn Sie auf Advanced configuration klicken, wird die userconfig.xml-Datei angezeigt. Diese Datei wird automatisch von der Konsole gefüllt und mit den Neustartskripten auf den Knoten bereitgestellt.

ℹ️ Bei einer Cloud-Bereitstellung müssen Sie keine virtuelle Konfiguration konfigurieren IP Adresse in SafeKit. Das Virtuelle IP wird am 🛠️ verwaltet Cloud-Load-Balancer-Ebene.

ℹ️ Wenn Sie die SafeKit-Konfiguration anwenden, wird der startup type der Dienste automatisch auf Manual in Windows-Diensten gesetzt. Dadurch wird sichergestellt, dass Dienste nicht automatisch beim Systemstart gestartet werden, sondern erst beim Start des Moduls selbst (dasselbe gilt für Linux).

Geben Sie die PostgreSQL-Moduleinstellungen ein

5. Skripte bearbeiten (optional)

  • Dieser Schritt ist optional und kann in den meisten Fällen übersprungen werden, da die Neustartskripte bereits vorkonfiguriert sind, um die im vorherigen Schritt definierten Dienste neu zu starten.
  • Klicken Sie also direkt auf Next step.
  • start_prim.ps1 startet alle Dienste in der in der SERVICES-Liste angegebenen Reihenfolge, während stop_prim.ps1 alle Dienste in umgekehrter Reihenfolge stoppt.
  • Darüber hinaus überprüft start_prim.ps1 den Start jedes Dienstes und stoppt das Modul, wenn ein Dienst nicht ordnungsgemäß gestartet werden kann.

Geben Sie die PostgreSQL-Moduleinstellungen ein

6. Kommunikationsverschlüsselung (optional)

  • Behalten Sie die Verschlüsselung der Kommunikation zwischen Knoten bei.

Kommunikationsverschlüsselung des PostgreSQL-Moduls

7. Speichern und anwenden

  • Save and apply die Konfiguration und Skripte auf beiden Knoten.

Speichern Sie die PostgreSQL-Modulkonfiguration und wenden Sie sie an

8. Überprüfen Sie die erfolgreiche Konfiguration

  • Überprüfen Sie die Meldung Success ✅ auf beiden Knoten und klicken Sie auf Monitor modules.
  • Wenn die Konfiguration Failure ❌ auf einem Knoten auftritt, öffnen Sie das Akkordeon ▼ für diesen Knoten und überprüfen Sie die Meldungen. Beachten Sie, dass Sie als Hilfe den SafeKit AI 🤖 verwenden können.

⚠️ Unter Linux erhalten Sie in diesem Schritt möglicherweise eine Fehlermeldung, wenn die replizierten Verzeichnisse Einhängepunkte sind.🛠️ Siehe SK-0030, um das Problem zu lösen.

Überprüfen Sie den Erfolg der PostgreSQL-Modulkonfiguration

9. Starten Sie den Knoten mit aktuellen Daten

  • Wenn Knoten 1 über die aktuellen replizierten Verzeichnisse verfügt, wählen Sie ihn aus und ⋯ Force start ▶ As primary.

Wenn Knoten 2 gestartet wird, werden alle Daten von Knoten 1 auf Knoten 2 kopiert.

⚠️ Wenn Sie die falsche Wahl treffen, besteht die Gefahr, dass veraltete Daten auf beiden Knoten synchronisiert werden.

⚠️ Es wird außerdem davon ausgegangen, dass die PostgreSQL-Anwendung auf Knoten 1 gestoppt wird, sodass SafeKit die Replikationsmechanismen installiert und dann die Anwendung im start_prim-Skript startet.

⚠️ Verwenden Sie Start für nachfolgende Starts: SafeKit behält den aktuellsten Server. Der Start von As primary ist eine Sonderinbetriebnahme beim ersten Mal oder bei außergewöhnlichen Einsätzen.

Starten Sie als Primärknoten den PostgreSQL-Knoten mit den aktuellen Daten

10. Warten Sie auf den Übergang zu ALONE (grün)

  • Knoten 1 sollte den Zustand ALONE (grün) erreichen, was bedeutet, dass der virtuelle IP gesetzt ist und das start_prim-Skript auf Knoten 1 ausgeführt wurde.

⚠️ Wenn ALONE (grün) nicht erreicht wird oder die Anwendung nicht gestartet wird, analysieren Sie den Grund mit dem -Modulprotokoll 🖼️ von Knoten 1.

  • Klicken Sie auf das Symbol 🔍 log von node1, um das Modulprotokoll zu öffnen und nach Fehlermeldungen zu suchen, z. B. wenn ein Prüfer einen Fehler erkennt und das Modul stoppt.
  • Klicken Sie im Protokoll auf start_prim: Rechts werden Ausgabemeldungen des Skripts angezeigt und es können Fehler wie ein falsch gestarteter Dienst erkannt werden.
  • Verwenden Sie SafeKit AI 🤖 für Unterstützung bei Protokollmeldungen.

⚠️ Wenn sich der Cluster im WAIT (red) not uptodate, STOP (red) not uptodate-Status befindet, stoppen Sie den WAIT-Knoten und erzwingen seinen Start als Primärknoten 🖼️.

Der erste PostgreSQL-Knoten startet als primärer Knoten und wird zu ALONE

11. Starten Sie Knoten 2

  • ⋯ Start Knoten 2 mit seinem Kontextmenü.
  • Warten Sie auf den Status SECOND (grün).

ℹ️ Knoten 2 bleibt im Status SECOND (orange), während die replizierten Verzeichnisse neu synchronisiert werden (Kopieren von Knoten 1 auf Knoten 2).

  • Dies kann abhängig von der Größe der neu zu synchronisierenden Dateien in replizierten Verzeichnissen und der Netzwerkbandbreite eine Weile dauern.
  • Um den Fortschritt des Kopierens zu sehen, sehen Sie sich das module-Protokoll 🖼️ und die replikationsressourcen 🖼️ von Knoten 2 an. Verwenden Sie SafeKit AI 🤖 für Unterstützung bei Protokollmeldungen.

Starten Sie den PostgreSQL-Knoten 2

12. Stellen Sie sicher, dass der Cluster betriebsbereit ist

  • Überprüfen Sie, ob der Cluster grün/grün ist und die PostgreSQL-Dienste auf dem PRIM-Knoten und nicht auf dem SECOND-Knoten ausgeführt werden.

In diesem Zustand werden nur Änderungen innerhalb von Dateien in Echtzeit repliziert.

⚠️ Komponenten, die Clients von PostgreSQL-Diensten sind, müssen mit der virtuellen IP-Adresse konfiguriert werden. Die Konfiguration kann mit einem DNS-Namen erfolgen (sofern ein DNS-Name erstellt und mit der virtuellen IP-Adresse verknüpft wurde).

Der PostgreSQL-Knoten 2 ist SECOND (grün)

13. Testen

  • Stoppen Sie den Knoten PRIM, indem Sie im Kontextmenü nach unten scrollen und auf Stop klicken.
  • Stellen Sie sicher, dass auf dem Knoten SECOND ein Failover stattfindet, der zu ALONE (grün) werden sollte.
  • Überprüfen Sie mit der Microsoft Management Console (MMC) auf Windows oder mit Befehlszeilen auf Linux das Failover der PostgreSQL-Dienste (im stop_prim-Skript auf Knoten 1 gestoppt und im start_prim-Skript auf Knoten 2 gestartet).

⚠️ Wenn ALONE (grün) auf node2 nicht erreicht wird oder die Anwendung nicht gestartet wird, analysieren Sie die Ursache mit dem -Modulprotokoll 🖼️ von Knoten 2.

  • Klicken Sie auf das Symbol 🔍 log von node2, um das Modulprotokoll zu öffnen und nach Fehlermeldungen zu suchen, z. B. wenn ein Prüfer einen Fehler erkennt und das Modul stoppt.
  • Klicken Sie im Protokoll auf start_prim: Rechts werden Ausgabemeldungen des Skripts angezeigt und es können Fehler wie ein falsch gestarteter Dienst erkannt werden.
  • Verwenden Sie SafeKit AI 🤖 für Unterstützung bei Protokollmeldungen.

⚠️

  • Wenn alles in Ordnung ist, initiieren Sie einen Start auf node1, wodurch die replizierten Verzeichnisse von node2 neu synchronisiert werden.
  • Wenn etwas schief geht, stoppen Sie node2 und . Erzwingen Sie den Start als primäres 🖼️ von node1, das zum Zeitpunkt des Stopps mit seinen lokal gesunden Daten neu startet.

ℹ️ Weitere Details und Videos finden Sie im SafeKit Online Training.

Stoppen Sie das PostgreSQL-Modul auf dem PRIM-Server

14. Unterstützung

  • Um Unterstützung zu erhalten, nehmen Sie 2 SafeKit Snapshots (2 .zip-Dateien), eine für jeden Knoten.

ℹ️ Weitere Informationen zum Support hier.

Nehmen Sie zur Unterstützung die PostgreSQL-Snapshots

Demonstration der SafeKit-Spiegellösung

SafeKit-Video: Clustering auf Anwendungsebene (8:47)

Entdecken Sie in diesem Video, wie SafeKit einen Spiegel-HA-Cluster ohne die Komplexität eines SAN implementiert. Während diese Demonstration Microsoft SQL Server verwendet, funktioniert die Lösung für andere Datenbanken und Anwendungen identisch.

Kapitel

  1. 🎬 2 Knoten mit SQL Server (0:32)
  2. 🎬 Konfigurieren Sie den Cluster und das Mirror.safe-Modul (3:58)
  3. 🎬 Starten und testen Sie SQL-Replikation, Migration und Failover bei Absturz (4:17)

Schrittweise Umsetzung

🔍 SafeKit Hochverfügbarkeit Navigation Hub

Entdecken Sie SafeKit: Funktionen, technische Videos, Dokumentation und kostenlose Testversion

RessourcentypBeschreibungDirekter Link
HauptfunktionenWarum SafeKit für einfache und kosteneffiziente Hochverfügbarkeit wählen?Warum SafeKit für Hochverfügbarkeit?
AnwendungsfälleErfahren Sie, wie SafeKit die Hochverfügbarkeit kritischer Infrastrukturen gewährleistetAlle Anwendungsfälle ansehen (OEM-Software, Edge-Server, SCADA und mehr)
BereitstellungsmodellAll-in-One SANlose HA: Shared-Nothing Software-ClusteringSafeKit All-in-One SANlose HA ansehen
HA-StrategienSafeKit: Infrastruktur (VM) vs. Hochverfügbarkeit auf AnwendungsebeneSafeKit HA & Redundanz: VM vs. Anwendungsebene
Technische SpezifikationenTechnische Einschränkungen für SafeKit-ClusteringTechnische Einschränkungen von SafeKit ansehen
VideosSafeKit: Konfiguration der Hochverfügbarkeit & Failover-DemosSafeKit Failover-Tutorials ansehen
ArchitekturWie der SafeKit Mirror Cluster funktioniert (Echtzeit-Replikation & Failover)SafeKit Mirror Cluster: Echtzeit-Replikation & Failover
ArchitekturWie der SafeKit Farm Cluster funktioniert (Netzwerk-Lastverteilung & Failover)SafeKit Farm Cluster: Netzwerk-Lastverteilung & Failover
WettbewerbsvorteileVergleich: SafeKit vs. traditionelle Hochverfügbarkeits-Cluster (HA)Vergleich: SafeKit vs. traditionelle HA-Cluster
Technische RessourcenSafeKit Hochverfügbarkeit: Dokumentation, Downloads & TestversionKostenlose Testversion & Technische Dokumentation
Vorkonfigurierte LösungenSafeKit Applikationsmodul-Bibliothek: Gebrauchsfertige HA-LösungenSafeKit Applikationsmodule für Hochverfügbarkeit
SafeKit AI Chat SafeKit AI