Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zum Registrieren eines kostenlosen Accounts finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch spezifische Werte für Ihre Cloud-Umgebung.
Automatisieren Sie Switchover und Failover für die PostgreSQL-Datenbank mit Oracle Cloud Infrastructure Full Stack Disaster Recovery
Einführung
Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR) orchestriert den Übergang von Compute-, Datenbank- und Anwendungsbereichen zwischen Oracle Cloud Infrastructure-(OCI-)Regionen auf der ganzen Welt mit einem einzigen Klick. Kunden können die Schritte zur Wiederherstellung eines oder mehrerer Geschäftssysteme automatisieren, ohne vorhandene Infrastrukturen, Datenbanken oder Anwendungen neu zu entwerfen oder neu zu strukturieren und ohne spezialisierte Verwaltungs- oder Konvertierungsserver zu benötigen.
OCI Full Stack DR ist ein hochflexibler Service. Wir können benutzerdefinierte Plangruppen im Disaster-Recovery-(DR-)Plan nutzen, um OCI Object Storage-Bucket-DR-Vorgänge zu verarbeiten.
Bereitstellungsarchitektur
Hinweis: Die primäre Region ist Frankfurt, und die DR-Region ist London.
Ziele
- Automatisieren Sie Switchover und Failover für die PostgreSQL-Datenbank mit OCI Full Stack DR.
Voraussetzungen
-
Administratorberechtigungen oder konfigurieren Sie die erforderlichen Oracle Cloud Infrastructure Identity and Access Management-(OCI IAM-)Policys für OCI Full Stack DR. Weitere Informationen finden Sie unter Identitäts- und Zugriffsmanagement-(IAM-)Policys zur Verwendung von OCI Full Stack DR konfigurieren und Policys für OCI Full Stack DR.
-
Sie müssen das Compute-Instanzausführungsbefehls-Plug-in sowohl in der Primär- als auch in der Standbydatenbank aktivieren, da OCI Full Stack DR
sudo
-Befehle ausführt, um Befehle beim Switchover zu mounten und auszuhängen. Weitere Informationen zu Ausführungsbefehlen auf der OCI Compute-Instanz finden Sie unter Befehle auf OCI Compute-Instanz ausführen. -
Verwenden Sie den Befehl "run" mit OCI Full Stack DR. Weitere Informationen finden Sie unter Benutzerdefinierte Skripte mit dem Befehl "run" mit Oracle Cloud Infrastructure Full Stack Disaster Recovery aufrufen.
-
Richten Sie eine Remote-Peering-Verbindung (RPC) zwischen zwei dynamischen Routinggateways (DRG) ein, die sich in denselben Mandanten befinden. Weitere Informationen finden Sie unter Remote-VCN-Peering über ein upgegradetes DRG.
-
Stellen Sie sicher, dass beide Rechner für die Datenbankreplikation auf dem PostgreSQL-Port
5432
kommunizieren können, und konfigurieren Sie die entsprechende Sicherheitsliste oder Netzwerksicherheitsgruppe. -
Verwenden Sie Bastion-as-a-Service oder einen Bastionhost, um eine Verbindung zu den PostegreSQL-Servern herzustellen.
-
OCI Object Storage-Bucket (einer in jeder Region).
Aufgabe 1: PostgreSQL installieren und konfigurieren
-
Um PostgreSQL zu installieren, stellen Sie mit Ihrem bevorzugten SSH-Client eine Verbindung zum Host her, und führen Sie den folgenden Befehl aus.
sudo dnf install -y postgresql postgresql-server postgresql-contrib sudo /usr/bin/postgresql-setup initdb sudo systemctl enable postgresql sudo systemctl start postgresql
-
Aktivieren Sie die Linux-Firewall für den Empfang von Verbindungen.
sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent sudo firewall-cmd --reload
-
Bearbeiten Sie die Datei
postgresql.conf
(bei xxxxx gefunden), um eine Verbindung zu ermöglichen, und ändern Sie diewal
-Parameter wie folgt.... listen_addresses = '*' ... wal_level = logical wal_log_hints = on ...
-
Melden Sie sich bei der Datenbank an, und erstellen Sie dann den Replikationsbenutzer.
sudo su postgres psql
CREATE ROLE replica_user WITH REPLICATION LOGIN PASSWORD 'YourUserPassword';
-
Fügen Sie diesen Benutzer der Datei
pg_hba.conf
(bei xxxxx gefunden) hinzu.host all all all md5 host replication replica_user <IP Host 1> md5 host replication replica_user <IP Host 2> md5
-
Starten Sie die Datenbank PostgreSQL neu, um die Änderungen anzuwenden.
sudo systemctl restart postgresql
-
Wiederholen Sie diesen Vorgang auf dem zweiten Server.
Aufgabe 2: PostgreSQL-Datenbank replizieren
In dieser Aufgabe konfigurieren wir die native Datenbankreplikation PostgreSQL.
-
Stellen Sie eine Verbindung zur primären Datenbank her, und erstellen Sie den Replikatslot.
sudo su postgres psql
select pg_create_physical_replication_slot('replica_0');
-
Melden Sie sich bei der sekundären Datenbank an, und führen Sie die folgenden Befehle aus, um die Replikation zu erstellen.
sudo systemctl stop postgresql sudo rm -rv /var/lib/pgsql/data/ sudo pg_basebackup -d "host=<IP Host 1> port=5432 user=replica_user password=YourUserPassword" -w -X stream -S replica_0 -v -R -W -D /var/lib/pgsql/data/ --no-password sudo chown postgres -R /var/lib/pgsql/data/ sudo systemctl start postgresql
-
Prüfen Sie, ob die Replikation in der primären Datenbank abläuft.
select * from pg_stat_replication;
Sie sollten in der Lage sein, eine Zeile mit dem Streaming-Prozess zu sehen.
Aufgabe 3: Switchover-Plan erstellen
Aufgabe 3.1: Disaster-Recovery-Schutzgruppen (DRPG) erstellen und zuordnen
-
Klicken Sie in der primären Region (Frankfurt) auf das Hamburger-Menü, navigieren Sie zu Migration und Disaster Recovery, Disaster Recovery, Disaster-Recovery-Schutzgruppe und Disaster-Recovery-Schutzgruppe erstellen.
-
Klicken Sie in der Standbyregion (London) auf das Hamburger-Menü, navigieren Sie zu Migration und Disaster Recovery, Disaster Recovery, Disaster-Recovery-Schutzgruppe und Disaster-Recovery-Schutzgruppe erstellen.
-
Geben Sie in der primären Region (Frankfurt) die folgenden Informationen ein, und klicken Sie auf Zuordnen.
- Rolle:
Primary
. - Peerregion:
UK South (London)
. - Peer-DR-Schutzgruppe:
postgresql-lon
.
- Rolle:
Aufgabe 3.2: Mitglieder zu Primär- und Standby-DRPG hinzufügen
-
Wählen Sie im primären DRPG (
postgresql-fra
) die Option Mitglieder aus, und fügen Sie die Compute-VM (postgresql01
) als Mitglied hinzu.Hinweis: Wählen Sie beim Hinzufügen von Compute als Mitglied im Compute-Instanztyp die Option Nicht verschiebende Instanz aus, da das Aktiv/Passiv-Setup für die Datenbank PostgreSQL vorhanden ist.
-
Wählen Sie im Standby-DRPG (
postgresql-lon
) die Option Mitglieder aus, und fügen Sie die Compute-VM (postgresql02
) als Mitglied hinzu.Hinweis: Wählen Sie beim Hinzufügen von Compute als Mitglieder im Compute-Instanztyp die Option Nicht verschiebende Instanz aus, da das Aktiv/Passiv-Setup für die Datenbank PostgreSQL vorhanden ist.
Aufgabe 3.3: Switchover-Plan in Standby-DRPG (London) erstellen
Switchover-Plan: Ein DR-Plantyp, der einen geplanten Übergang von Services vom primären DRPG zum Standby-DRPG ausführt.
-
Erstellen Sie einen Switchover-Plan in Standby-DRPG
postgresql-lon
. -
Wählen Sie Pläne aus, und klicken Sie auf Plan erstellen.
-
Geben Sie den Namen als
postgresql-switchover-frankfurt-london
ein, und wählen Sie den Plantyp alsSwitchover (planned)
aus. -
Klicken Sie auf Erstellen.
Hinweis: Achten Sie darauf, den Switchover-Plan aus dem Standby-DRPG (London) zu erstellen.
Aufgabe 3.4: Switchover-Plan mit verschiedenen benutzerdefinierten Plangruppen anpassen
Compute (nicht bewegliche Instanz) wurde in beiden DR-Schutzgruppen als Mitglieder hinzugefügt. Der Switchover-Plan muss mit zusätzlichen benutzerdefinierten Plangruppen angepasst werden. Außerdem müssen die folgenden bash-Skripte erstellt und in OCI Object Storage hochgeladen werden, damit wir diese Skripte beim Switchover aufrufen können.
-
stop_postgresql.sh
.#!/bin/bash sudo systemctl stop postgresql
-
promote_postgresql.sh
.#!/bin/bash sudo -u postgres /usr/bin/pg_ctl promote -D /var/lib/pgsql/data/ sudo -u postgres psql -c "select pg_create_physical_replication_slot('replica_1');"
-
change_replication_direction.sh
.#!/bin/bash sudo rm -rv /var/lib/pgsql/data/ sudo sudo pg_basebackup -d "host=<IP Host 2> port=5432 user=replica_user password=YourUserPassword" -w -X stream -S replica_1 -v -R -W -D /var/lib/pgsql/data/ --no-password sudo chown postgres -R /var/lib/pgsql/data/ sudo systemctl start postgresql sudo -u postgres psql -c "select pg_create_physical_replication_slot('replica_0');"
Hinweis: Diese Skripte müssen in den Bucket in der Region London hochgeladen werden.
Ein typischer Workflow für DR-Switchover ist:
-
Datenbank PostgreSQL in Region Frankfurt stoppen: Die Plangruppe verfügt über Schritte zum Stoppen der Datenbank PostgreSQL in der Region Frankfurt.
-
Datenbank PostgreSQL in Region London befördern: Die Plangruppe verfügt über Schritte zum Hochstufen der Datenbank PostgreSQL in der Region London.
-
Replikationsrichtung der Datenbank PostgreSQL ändern: Die Plangruppe verfügt über Schritte zum Ändern der Replikationsrichtung der Datenbank PostgreSQL (LON-FRA).
Hinweis: Stellen Sie sicher, dass die Schritte in derselben Reihenfolge ausgeführt werden.
Erstellen Sie die folgende benutzerdefinierte Plangruppe.
-
Erstellen Sie die Plangruppe Datenbank PostgreSQL in der Region Frankfurt stoppen.
-
Klicken Sie unter Plangruppen auf Gruppe hinzufügen, um eine benutzerdefinierte Plangruppe zum Stoppen der PostgreSQL-Datenbank in der Region Frankfurt zu erstellen. Geben Sie den Gruppennamen als
Stop PostgreSQL Database at Frankfurt Region
ein. -
Klicken Sie auf Schritt hinzufügen, und geben Sie die folgenden Informationen ein. Wir fügen einen Schritt in der Plangruppe hinzu.
-
Wählen Sie die Region als
Frankfurt
und die Zielinstanz alspostgresql01
aus. Wählen Sie das Objektspeicherskript ausführen aus, und der Speicherort des Skripts wählt den OCI-Objektspeicher-Bucketposgres-dr-lon
aus. -
Geben Sie die Skriptdetails
stop_postgresql.sh
mit dem Skriptverzeichnis ein. Mit dem Skript wird die Datenbank PostgreSQL in der FRA-Region heruntergefahren. -
Klicken Sie auf Schritt hinzufügen, und prüfen Sie den hinzugefügten Schritt.
-
-
-
Create Promote PostgreSQL Database at London region plan group.
-
Klicken Sie unter Plangruppen auf Gruppe hinzufügen, um eine benutzerdefinierte Plangruppe zum Hochstufen der PostgreSQL-Datenbank in London zu erstellen. Geben Sie den Gruppennamen als
Promote PostgreSQL Database at London Region
ein. -
Klicken Sie auf Schritt hinzufügen, und geben Sie die folgenden Details ein. Wir fügen einen Schritt in der Plangruppe hinzu.
-
Stellen Sie sicher, dass Sie die Region als
London
und die Zielinstanz alspostgresql02
auswählen. Wählen Sie das Objektspeicherskript ausführen aus, und das Skriptverzeichnis wählt den OCI-Objektspeicher-Bucketposgres-dr-lon
aus. -
Geben Sie die Skriptdetails
promote_postgresql.sh
mit dem Skriptverzeichnis ein. Mit dem Skript wird die Datenbank PostgreSQL in der FRA-Region heruntergefahren. -
Klicken Sie auf Schritt hinzufügen, und prüfen Sie den hinzugefügten Schritt.
-
-
-
Create Change PostgreSQL Database replication direction plan group.
-
Klicken Sie unter Plangruppen auf Gruppe hinzufügen, um eine benutzerdefinierte Plangruppe zu erstellen, um die Replikationsrichtung der PostgreSQL-Datenbank zu ändern. Geben Sie den Gruppennamen als
Promote PostgreSQL Database at London Region
ein. -
Klicken Sie auf Schritt hinzufügen, und geben Sie die folgenden Informationen ein. Wir fügen einen Schritt in der Plangruppe hinzu.
-
Wählen Sie die Region als
Frankfurt
und die Zielinstanz alspostgresql01
aus. Wählen Sie das Objektspeicherskript ausführen und den Speicherort des Skripts aus, und wählen Sie den OCI-Objektspeicher-Bucketposgres-dr-lon
aus. -
Geben Sie die Skriptdetails
change_replication_direction.sh
mit dem Skriptverzeichnis ein. Mit dem Skript wird die Datenbank PostgreSQL in der FRA-Region heruntergefahren. -
Klicken Sie auf Schritt hinzufügen, und prüfen Sie den hinzugefügten Schritt.
-
-
Aufgabe 4: Vorabprüfungen ausführen und Switchover-Plan ausführen
Mit der Option Vorabprüfungen ausführen werden alle Schritte in einem DR-Plan und die mit den Schritten verknüpften Mitglieder schnell validiert.
-
Klicken Sie im Switchover-Plan
postgresql-switchover-frankfurt-london
auf Vorabprüfungen ausführen, um Vorabprüfungen auszuführen.Prüfen Sie, ob der Vorgang erfolgreich abgeschlossen wurde.
-
Klicken Sie im Switchover-Plan
postgresql-switchover-frankfurt-london
auf Disaster-Recovery-Plan ausführen, um den Plan auszuführen. -
Prüfen Sie den Status des Plans, und stellen Sie sicher, dass alle Schritte im Plan erfolgreich sind.
-
Der Switchover-Plan führt alle Plangruppen in einer bestimmten Reihenfolge aus. Nach der erfolgreichen Planausführung wird die Datenbank PostgreSQL zum Master in der Region London hochgestuft.
-
Die Rolle wird automatisch im DRPG geändert. Jetzt wird London Primär- und Frankfurt die Standby-Rolle haben.
-
Prüfen Sie die Datenbank PostgreSQL in London.
Aufgabe 5: Switchover-Plan in Standby-DRPG (Frankfurt) für Switchback erstellen
Aufgabe 5.1: Switchover-Plan in Standby-DRPG erstellen (London)
-
Erstellen Sie einen Switchover-Plan in Standby-DRPG
postgresql-fran
. -
Wählen Sie Pläne aus, und klicken Sie auf Plan erstellen.
-
Geben Sie den Namen als
postgresql-switchover-london-frankfurt
ein, und wählen Sie den Plantyp alsSwitchover (planned)
aus. -
Klicken Sie auf Erstellen.
Hinweis: Achten Sie darauf, den Switchover-Plan aus dem Standby-DRPG (Frankfurt) zu erstellen.
Aufgabe 5.2: Switchover-Plan mit verschiedenen benutzerdefinierten Plangruppen anpassen
Der Switchover-Plan muss mit zusätzlichen benutzerdefinierten Plangruppen angepasst werden. Außerdem müssen wir die folgenden bash-Skripte erstellen und in den OCI Object Storage hochladen, damit wir diese Skripte während des Switchovers aufrufen können.
-
rewind_postgresql.sh
.#!/bin/bash sudo systemctl stop postgresql sudo rm -rv /var/lib/pgsql/data/ sudo -u postgres pg_basebackup -d "host=<IP Host 2> port=5432 user=replica_user password=YourUserPassword" -v -R -D /var/lib/pgsql/data/ --no-password sudo chown postgres -R /var/lib/pgsql/data/ sudo systemctl start postgresql sudo -u postgres /usr/bin/pg_ctl promote -D /var/lib/pgsql/data/ sudo -u postgres psql -c "select pg_create_physical_replication_slot('replica_0');"
-
replicate_postgresql.sh
.#!/bin/bash sudo systemctl stop postgresql sudo rm -rv /var/lib/pgsql/data/ sudo pg_basebackup -d "host=<IP Host 2> port=5432 user=replica_user password=YourUserPassword" -w -X stream -S replica_0 -v -R -W -D /var/lib/pgsql/data/ --no-password sudo chown postgres -R /var/lib/pgsql/data/ sudo systemctl start postgresql
Hinweis: Diese Skripte müssen in den Bucket in der Region Frankfurt hochgeladen werden.
Ein typischer Workflow für DR-Switchover ist:
-
PostgreSQL-Datenbanken zurückspulen: Plangruppe zum Zurückspulen der Datenbank. Frankfurt synchronisiert die Inhalte aus der Londoner Datenbank.
-
Datenbankreplikation PostgreSQL in London wiederherstellen: Die Plangruppe muss mit dem Replizieren der PostgreSQL-Datenbank von Frankfurt in die Region London beginnen.
Hinweis: Stellen Sie sicher, dass die Schritte in derselben Reihenfolge ausgeführt werden.
Erstellen Sie die folgenden beiden benutzerdefinierten Plangruppen
-
Erstellen Sie die Plangruppe PostgreSQL-Datenbanken zurückspulen.
-
Klicken Sie unter Plangruppen auf Gruppe hinzufügen, um eine benutzerdefinierte Plangruppe zum Zurückspulen der PostgreSQL-Datenbank in der Region Frankfurt zu erstellen. Geben Sie den Gruppennamen als
Rewind PostgreSQL Databases at Frankfurt Region
ein. -
Klicken Sie auf Schritt hinzufügen, und geben Sie die folgenden Informationen ein. Sie fügen der Plangruppe einen Schritt hinzu.
-
Wählen Sie die Region als
Frankfurt
und die Zielinstanz alspostgresql01
aus. Wählen Sie das Objektspeicherskript ausführen aus, und das Skriptverzeichnis wählt den OCI-Objektspeicher-Bucketposgres-dr-lon
aus. -
Geben Sie die Skriptdetails
rewind_postgresql.sh
mit dem Skriptverzeichnis ein. Mit dem Skript wird die Datenbank PostgreSQL in der FRA-Region heruntergefahren. -
Klicken Sie auf Schritt hinzufügen, und prüfen Sie den hinzugefügten Schritt.
-
-
-
Erstellen Sie die Plangruppe PostgreSQL-Datenbankreplikation in London wiederherstellen.
-
Klicken Sie unter Plangruppen auf Gruppe hinzufügen, um eine benutzerdefinierte Plangruppe zu erstellen, mit der die Datenbankreplikation PostgreSQL nach London wiederhergestellt werden kann. Geben Sie den Gruppennamen als
Promote PostgreSQL Database at London Region
ein. -
Klicken Sie auf Schritt hinzufügen, und geben Sie die folgenden Informationen ein. Wir fügen einen Schritt in der Plangruppe hinzu.
-
Wählen Sie die Region als
London
und die Zielinstanz alspostgresql02
aus. Wählen Sie das Objektspeicherskript ausführen aus, und das Skriptverzeichnis wählt den OCI-Objektspeicher-Bucketposgres-dr-lon
aus. -
Geben Sie die Skriptdetails
replicate_postgresql.sh
mit dem Skriptverzeichnis ein. Mit dem Skript wird die Datenbank PostgreSQL in der FRA-Region heruntergefahren. -
Klicken Sie auf Schritt hinzufügen, und prüfen Sie den hinzugefügten Schritt.
-
-
Aufgabe 6: Vorabprüfungen ausführen und Switchover-Plan ausführen
Die Option Vorabprüfungen ausführen führt eine Schnellvalidierung aller Schritte in einem DR-Plan und der mit den Schritten verknüpften Mitglieder aus.
-
Klicken Sie im Switchover-Plan
postgresql-switchover-london-frankfurt
auf Vorabprüfungen ausführen, um Vorabprüfungen auszuführen.Prüfen Sie, ob der Vorgang erfolgreich abgeschlossen wurde.
-
Klicken Sie im Switchover-Plan
postgresql-switchover-london-frankfurt
auf Disaster-Recovery-Plan ausführen, um den Plan auszuführen. -
Prüfen Sie den Status des Plans, und stellen Sie sicher, dass alle Schritte im Plan erfolgreich sind.
-
Der Switchover-Plan führt alle Plangruppen in einer bestimmten Reihenfolge aus. Nach der erfolgreichen Planausführung wird die Datenbank PostgreSQL zum Master in der Region Frankfurt hochgestuft.
-
Die Rolle wird automatisch im DRPG geändert. Jetzt wird Frankfurt Primär- und London Standby-Rolle haben.
-
Prüfen Sie die Datenbank PostgreSQL in Frankfurt.
Nächste Schritte
Sie haben gesehen, wie Sie den Datenbank-Switchover PostgreSQL automatisch ausführen und Disaster-Recovery-Vorgänge mit OCI Full Stack DR zurücksetzen. Weitere Informationen finden Sie in der OCI Full Stack DR-Dokumentation im Abschnitt Zugehörige Links.
Verwandte Links
-
Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery
-
Werden Sie Teil des öffentlichen Slack-Kanals #full-stack-dr
Danksagungen
-
Autor - Raphael Teixeira (Hauptmitglied des technischen Personals für FSDR)
-
Mitwirkende - Ricardo Malhado (Hyperscaler zu OCI Specialist), Suraj Ramesh (Principal Product Manager für MAA)
Weitere Lernressourcen
Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Außerdem können Sie education.oracle.com/learning-explorer besuchen, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Automate Switchover and Failover for PostgreSQL Database with Oracle Cloud Infrastructure Full Stack Disaster Recovery
F96160-01
April 2024