Hinweis:

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

Object Storage-Architektur

Hinweis: Die primäre Region ist Frankfurt, und die DR-Region ist London.

Ziele

Voraussetzungen

Aufgabe 1: PostgreSQL installieren und konfigurieren

  1. 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
    
  2. 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
    
  3. Bearbeiten Sie die Datei postgresql.conf (bei xxxxx gefunden), um eine Verbindung zu ermöglichen, und ändern Sie die wal-Parameter wie folgt.

    ...
    listen_addresses = '*'
    ...
    wal_level = logical
    wal_log_hints = on
    ...
    
  4. 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';
    
  5. 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
    
  6. Starten Sie die Datenbank PostgreSQL neu, um die Änderungen anzuwenden.

    sudo systemctl restart postgresql
    
  7. Wiederholen Sie diesen Vorgang auf dem zweiten Server.

Aufgabe 2: PostgreSQL-Datenbank replizieren

In dieser Aufgabe konfigurieren wir die native Datenbankreplikation PostgreSQL.

  1. 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');
    
  2. 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
    
  3. 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

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

    Disaster Recovery-Schutzgruppe in Ashburn erstellen

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

    Disaster Recovery-Schutzgruppe in Ashburn erstellen

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

    Primär- und Standbydatenbank zuordnen

Aufgabe 3.2: Mitglieder zu Primär- und Standby-DRPG hinzufügen

  1. Wählen Sie im primären DRPG (postgresql-fra) die Option Mitglieder aus, und fügen Sie die Compute-VM (postgresql01) als Mitglied hinzu.

    Primäre Elemente hinzufügen

    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.

  2. Wählen Sie im Standby-DRPG (postgresql-lon) die Option Mitglieder aus, und fügen Sie die Compute-VM (postgresql02) als Mitglied hinzu.

    Standby-Mitglieder hinzufügen

    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.

  1. Erstellen Sie einen Switchover-Plan in Standby-DRPG postgresql-lon.

  2. Wählen Sie Pläne aus, und klicken Sie auf Plan erstellen.

  3. Geben Sie den Namen als postgresql-switchover-frankfurt-london ein, und wählen Sie den Plantyp als Switchover (planned) aus.

  4. Klicken Sie auf Erstellen.

Switchover-Plan

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.

Hinweis: Diese Skripte müssen in den Bucket in der Region London hochgeladen werden.

Plangruppen

Ein typischer Workflow für DR-Switchover ist:

  1. Datenbank PostgreSQL in Region Frankfurt stoppen: Die Plangruppe verfügt über Schritte zum Stoppen der Datenbank PostgreSQL in der Region Frankfurt.

  2. Datenbank PostgreSQL in Region London befördern: Die Plangruppe verfügt über Schritte zum Hochstufen der Datenbank PostgreSQL in der Region London.

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

  1. Erstellen Sie die Plangruppe Datenbank PostgreSQL in der Region Frankfurt stoppen.

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

      Datenbank PostgreSQL in FRA stoppen

    2. 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 als postgresql01 aus. Wählen Sie das Objektspeicherskript ausführen aus, und der Speicherort des Skripts wählt den OCI-Objektspeicher-Bucket posgres-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.

      Datenbankschritt PostgreSQL stoppen

  2. Create Promote PostgreSQL Database at London region plan group.

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

      PostgreSQL-Datenbank in LON bewerben

    2. 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 als postgresql02 auswählen. Wählen Sie das Objektspeicherskript ausführen aus, und das Skriptverzeichnis wählt den OCI-Objektspeicher-Bucket posgres-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.

      Datenbankschritt PostgreSQL hochstufen

  3. Create Change PostgreSQL Database replication direction plan group.

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

      Datenbankreplikation PostgreSQL ändern directionN

    2. 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 als postgresql01 aus. Wählen Sie das Objektspeicherskript ausführen und den Speicherort des Skripts aus, und wählen Sie den OCI-Objektspeicher-Bucket posgres-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.

      Schritt zur Richtung der Datenbankreplikation PostgreSQL ändern

Plangruppen London

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.

  1. Klicken Sie im Switchover-Plan postgresql-switchover-frankfurt-london auf Vorabprüfungen ausführen, um Vorabprüfungen auszuführen.

    Switchover-Vorprüfung

    Prüfen Sie, ob der Vorgang erfolgreich abgeschlossen wurde.

    Status der Switchover-Vorprüfung

  2. Klicken Sie im Switchover-Plan postgresql-switchover-frankfurt-london auf Disaster-Recovery-Plan ausführen, um den Plan auszuführen.

    Disaster-Recovery-Plan ausführen

  3. Prüfen Sie den Status des Plans, und stellen Sie sicher, dass alle Schritte im Plan erfolgreich sind.

    Status des Disaster Recovery-Plans ausführen

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

  5. Die Rolle wird automatisch im DRPG geändert. Jetzt wird London Primär- und Frankfurt die Standby-Rolle haben.

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

  1. Erstellen Sie einen Switchover-Plan in Standby-DRPG postgresql-fran.

  2. Wählen Sie Pläne aus, und klicken Sie auf Plan erstellen.

  3. Geben Sie den Namen als postgresql-switchover-london-frankfurt ein, und wählen Sie den Plantyp als Switchover (planned) aus.

  4. Klicken Sie auf Erstellen.

Plangruppen

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.

Hinweis: Diese Skripte müssen in den Bucket in der Region Frankfurt hochgeladen werden.

Ein typischer Workflow für DR-Switchover ist:

  1. PostgreSQL-Datenbanken zurückspulen: Plangruppe zum Zurückspulen der Datenbank. Frankfurt synchronisiert die Inhalte aus der Londoner Datenbank.

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

  1. Erstellen Sie die Plangruppe PostgreSQL-Datenbanken zurückspulen.

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

      PostgreSQL-Datenbank in FRA zurückspulen

    2. 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 als postgresql01 aus. Wählen Sie das Objektspeicherskript ausführen aus, und das Skriptverzeichnis wählt den OCI-Objektspeicher-Bucket posgres-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.

      Datenbankschritt PostgreSQL zurückspulen

  2. Erstellen Sie die Plangruppe PostgreSQL-Datenbankreplikation in London wiederherstellen.

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

      PostgreSQL-Datenbankreplikation in LON wiederherstellen

    2. 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 als postgresql02 aus. Wählen Sie das Objektspeicherskript ausführen aus, und das Skriptverzeichnis wählt den OCI-Objektspeicher-Bucket posgres-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.

      Schritt PostgreSQL der Datenbankreplikation wiederherstellen

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.

  1. Klicken Sie im Switchover-Plan postgresql-switchover-london-frankfurt auf Vorabprüfungen ausführen, um Vorabprüfungen auszuführen.

    Switchover-Vorprüfung

    Prüfen Sie, ob der Vorgang erfolgreich abgeschlossen wurde.

    Status der Switchover-Vorprüfung

  2. Klicken Sie im Switchover-Plan postgresql-switchover-london-frankfurt auf Disaster-Recovery-Plan ausführen, um den Plan auszuführen.

    Disaster-Recovery-Plan ausführen

  3. Prüfen Sie den Status des Plans, und stellen Sie sicher, dass alle Schritte im Plan erfolgreich sind.

    Status des Disaster Recovery-Plans ausführen

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

  5. Die Rolle wird automatisch im DRPG geändert. Jetzt wird Frankfurt Primär- und London Standby-Rolle haben.

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

Danksagungen

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.