Hinweis:

Regionsübergreifendes Disaster Recovery für PostgreSQL-Datenbanken auf VM mit physischer Standbyreplikation implementieren

Einführung

pg_basebackup ist ein Befehlszeilenutility, das von PostgreSQL zur Ausführung eines vollständigen Backups eines ausgeführten PostgreSQL-Datenbankclusters bereitgestellt wird. Es wurde entwickelt, um eine binäre Kopie des Datenbankclusters zu erstellen, die für Replikations- oder Recovery-Zwecke verwendet werden kann.

pg_basebackup ist ein Befehlszeilenutility, das von PostgreSQL zur Ausführung eines vollständigen Backups eines ausgeführten PostgreSQL-Datenbankclusters bereitgestellt wird. Es wurde entwickelt, um eine binäre Kopie des Datenbankclusters zu erstellen, die für Replikations- oder Recovery-Zwecke verwendet werden kann.

Einer der Hauptvorteile des Utilitys pg_basebackup besteht darin, dass es funktioniert, ohne Zugriff auf das Dateisystem zu benötigen, in dem sich die Datenbank befindet. Stattdessen stellt er eine Verbindung zum PostgreSQL-Server über das Streaming-Replikationsprotokoll her, sodass die Verwendung auch während der Serverausführung sicher und bequem ist.

In der Regel in Verbindung mit der WAL-Archivierung (Write-Ahead Logging) spielt das Utility pg_basebackup eine entscheidende Rolle beim Einrichten der Streamingreplikation und beim Sicherstellen von High Availability und Disaster Recovery für PostgreSQL-Umgebungen, die auf virtuellen Maschinen (VM) ausgeführt werden.

Wichtige Features:

In diesem Tutorial werden die Aufgaben zum Einrichten der regionsübergreifenden Streamingreplikation zwischen zwei PostgreSQL-Datenbanken beschrieben, die auf Compute-VMs gehostet werden.

Ziele

Voraussetzungen

Erstellen Sie VCN-Peering in der gesamten Region. Um regionsübergreifend eine Verbindung zu den Compute-VMs herzustellen, muss VCN-Peering eingerichtet werden. Weitere Informationen:

Stellen Sie sicher, dass das VCN-Peering korrekt konfiguriert ist, um eine nahtlose Konnektivität zwischen den Datenbanken in verschiedenen Regionen herzustellen.

Aufgabe 1: Primäre PostgreSQL-Datenbank einrichten

  1. Erstellen Sie den Benutzer replicator in der primären PostgreSQL-Datenbank.

    CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD '*********';
    
  2. Rollen/Benutzer validieren

    postgres=# \du
                                        List of roles
       Role name    |                         Attributes                         | Member of
    ----------------+------------------------------------------------------------+-----------
    admin          | Superuser                                                  | {}
    guest          |                                                            | {}
    mytestdb       |                                                            | {}
    postgres       | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
    replicator     | Replication  
    
  3. Aktualisieren Sie die Datei postgresql.conf mit den folgenden Details.

    listen_addresses = '*'
    
  4. Aktualisieren Sie die Datei pg_hba.conf. Verwenden Sie die IP-Adresse der Standbydatenbank.

    host    replication     replicator      Standby_DB_IP/32       md5
    
  5. Starten Sie den PostgreSQL-Service neu.

    sudo systemctl restart PostgreSQL
    

Aufgabe 2: Standbydatenbank PostgreSQL einrichten

  1. Stoppen Sie den PostgreSQL-Service.

    sudo systemctl stop PostgreSQL
    
  2. Entfernen Sie die vorhandenen Binärdateien.

    cp -R /var/lib/postgresql/13/main /var/lib/postgresql/13/main_old
    rm -rf /var/lib/postgresql/13/main
    
  3. Führen Sie den Befehl pg_basebackup aus, um die Streamingreplikation einzurichten.

    pg_basebackup -h PrimaryDB_IP -D /var/lib/postgresql/13/main -U replicator -P -v -R -X stream -C -S slaveslot1 
    
  4. Starten Sie den PostgreSQL-Service.

    sudo systemctl start PostgreSQL
    

Aufgabe 3: Streamingreplikation in der primären PostgreSQL-Datenbank prüfen

Führen Sie den folgenden Befehl in der primären PostgreSQL-Datenbank aus, um den Synchronisierungsstatus zwischen der primären und der DR-Datenbank zu erfassen.

SELECT * FROM pg_replication_slots;
SELECT * FROM pg_stat_replication;

Bestätigungen

Weitere Lernressourcen

Sehen Sie sich weitere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.