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.safeAnwendungsmodul.
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 / Requirement | Reason & Impact | Recommended Alternative |
|---|---|---|
| Replikationsgröße: Einige TB | Resynchronisationszeit 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:9010herstellen. - Geben Sie als Benutzernamen
adminund 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.

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.

3. Wählen Sie ein Modul aus
- Klicken Sie in
New moduleauf das Modulpostgresql.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.

4. Konfigurieren Sie das Modul
- Wählen Sie in
Module startup at booteinen automatischen Start des Moduls beim Booten ohne Verzögerung. - Geben Sie in
Macros/SERVICESdie 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 networkssollten 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 addresseseine 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 directoriesdie 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
Checkerskö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 inMonitored processes/servicesangezeigt 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).

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.ps1startet alle Dienste in der in derSERVICES-Liste angegebenen Reihenfolge, währendstop_prim.ps1alle Dienste in umgekehrter Reihenfolge stoppt.- Darüber hinaus überprüft
start_prim.ps1den Start jedes Dienstes und stoppt das Modul, wenn ein Dienst nicht ordnungsgemäß gestartet werden kann.

6. Kommunikationsverschlüsselung (optional)
- Behalten Sie die Verschlüsselung der Kommunikation zwischen Knoten bei.

7. Speichern und anwenden
Save and applydie Konfiguration und Skripte auf beiden Knoten.

8. Überprüfen Sie die erfolgreiche Konfiguration
- Überprüfen Sie die Meldung
Success✅ auf beiden Knoten und klicken Sie aufMonitor 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.

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.

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 🖼️.

11. Starten Sie Knoten 2
- ⋯
StartKnoten 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.

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).

13. Testen
- Stoppen Sie den Knoten PRIM, indem Sie im Kontextmenü nach unten scrollen und auf
Stopklicken. - 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 imstart_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.

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.

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
- 🎬 2 Knoten mit SQL Server (0:32)
- 🎬 Konfigurieren Sie den Cluster und das Mirror.safe-Modul (3:58)
- 🎬 Starten und testen Sie SQL-Replikation, Migration und Failover bei Absturz (4:17)
Schrittweise Umsetzung
- 🛠️ Lesen Sie die Anleitung zum Einrichten eines gespiegelten Clusters unter Windows
- 🛠️ Lesen Sie die Anleitung zum Einrichten eines gespiegelten Clusters unter Linux
🔍 SafeKit Hochverfügbarkeit Navigation Hub
Entdecken Sie SafeKit: Funktionen, technische Videos, Dokumentation und kostenlose Testversion
| Ressourcentyp | Beschreibung | Direkter Link |
|---|---|---|
| Hauptfunktionen | Warum SafeKit für einfache und kosteneffiziente Hochverfügbarkeit wählen? | Warum SafeKit für Hochverfügbarkeit? |
| Anwendungsfälle | Erfahren Sie, wie SafeKit die Hochverfügbarkeit kritischer Infrastrukturen gewährleistet | Alle Anwendungsfälle ansehen (OEM-Software, Edge-Server, SCADA und mehr) |
| Bereitstellungsmodell | All-in-One SANlose HA: Shared-Nothing Software-Clustering | SafeKit All-in-One SANlose HA ansehen |
| HA-Strategien | SafeKit: Infrastruktur (VM) vs. Hochverfügbarkeit auf Anwendungsebene | SafeKit HA & Redundanz: VM vs. Anwendungsebene |
| Technische Spezifikationen | Technische Einschränkungen für SafeKit-Clustering | Technische Einschränkungen von SafeKit ansehen |
| Videos | SafeKit: Konfiguration der Hochverfügbarkeit & Failover-Demos | SafeKit Failover-Tutorials ansehen |
| Architektur | Wie der SafeKit Mirror Cluster funktioniert (Echtzeit-Replikation & Failover) | SafeKit Mirror Cluster: Echtzeit-Replikation & Failover |
| Architektur | Wie der SafeKit Farm Cluster funktioniert (Netzwerk-Lastverteilung & Failover) | SafeKit Farm Cluster: Netzwerk-Lastverteilung & Failover |
| Wettbewerbsvorteile | Vergleich: SafeKit vs. traditionelle Hochverfügbarkeits-Cluster (HA) | Vergleich: SafeKit vs. traditionelle HA-Cluster |
| Technische Ressourcen | SafeKit Hochverfügbarkeit: Dokumentation, Downloads & Testversion | Kostenlose Testversion & Technische Dokumentation |
| Vorkonfigurierte Lösungen | SafeKit Applikationsmodul-Bibliothek: Gebrauchsfertige HA-Lösungen | SafeKit Applikationsmodule für Hochverfügbarkeit |