Barman für AlloyDB Omni einrichten

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite erfahren Sie, wie Sie Ihre Daten schützen, indem Sie AlloyDB Omni für die Verwendung mit Barman konfigurieren, einem Open-Source-Datenbanksicherungsserver.

Sie können Ihre AlloyDB Omni-Daten mit jeder Datenbank-Sicherungstechnologie schützen, die mit PostgreSQL funktioniert. Sie können AlloyDB Omni beispielsweise so konfigurieren, dass Verbindungen von einem Barman-Server, den Sie steuern, zugelassen werden. So kann der Barman-Server kontinuierliche Sicherungen der auf Ihrem AlloyDB Omni-Server gespeicherten Daten ausführen.

Nachdem Sie Ihre Barman- und AlloyDB Omni-Server für die Zusammenarbeit konfiguriert haben, können Sie anschließend Barman-Befehle ausführen, um verschiedene Aufgaben zum Datenschutz und zur Notfallwiederherstellung auszuführen, darunter:

  • Erstellen Sie eine On-Demand-Sicherung Ihrer Daten.
  • Richten Sie das synchrone WAL-Streaming Ihrer Datenänderungen auf Ihren Backup-Server ein.
  • Aus einer bestimmten Sicherung wiederherstellen
  • Führen Sie eine Wiederherstellung zu einem bestimmten Zeitpunkt durch.

Weitere Informationen zur Funktionsweise von Barman finden Sie im Barman-Handbuch.

Hinweise

Bevor Sie AlloyDB Omni für die Verwendung mit Barman konfigurieren, benötigen Sie Folgendes:

AlloyDB Omni für die Verwendung mit Barman konfigurieren

Führen Sie die folgenden Befehle auf dem Server aus, auf dem Sie AlloyDB Omni installiert haben, um Ihren AlloyDB Omni-Server für die Verwendung mit Barman vorzubereiten.

  1. Erstellen Sie den Datenbanknutzer barman mit den entsprechenden Berechtigungen:

    Docker

    docker exec CONTAINER_NAME psql -h localhost -U postgres -c "
    CREATE USER barman;
    GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman;
    GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman;
    GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman;
    GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman;
    GRANT pg_read_all_settings TO barman;
    GRANT pg_read_all_stats TO barman;
    CREATE USER streaming_barman WITH REPLICATION;
    "

    Ersetzen Sie CONTAINER_NAME durch den Namen, den Sie dem AlloyDB Omni-Container bei der Installation zugewiesen haben.

    Podman

    podman exec CONTAINER_NAME psql -h localhost -U postgres -c "
    CREATE USER barman;
    GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman;
    GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman;
    GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman;
    GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman;
    GRANT pg_read_all_settings TO barman;
    GRANT pg_read_all_stats TO barman;
    CREATE USER streaming_barman WITH REPLICATION;
    "

    Ersetzen Sie CONTAINER_NAME durch den Namen, den Sie dem AlloyDB Omni-Container bei der Installation zugewiesen haben.

  2. Fügen Sie der Datei DATA_DIR/pg_hba.conf die folgenden Zeilen vor der Zeile host all all all scram-sha-256 hinzu, die in der Datei vorhanden ist:

    host all barman BARMAN_IP/32 AUTHN_METHOD
    host replication streaming_barman BARMAN_IP/32 AUTHN_METHOD
    

    Ersetzen Sie Folgendes:

    • DATA_DIR: Der Dateisystempfad, der für das AlloyDB Omni-Datenverzeichnis verwendet wird.

    • BARMAN_IP: die IP-Adresse des Barman-Servers.

    • AUTHN_METHOD: Die PostgreSQL-Authentifizierungsmethode, die Ihr AlloyDB for PostgreSQL-Server vom Barman-Server erwartet. Wir empfehlen einen der folgenden Werte:

      • Wenn sich der Barman-Server ohne Passwort authentifizieren soll, verwenden Sie trust.

      • Wenn Sie ein Passwort vom Barman-Server anfordern möchten, verwenden Sie scram-sha-256.

  3. Fügen Sie der Datei DATA_DIR/postgresql.conf die folgenden Zeilen hinzu:

    archive_command='/bin/true'
    archive_mode=on
    listen_addresses='*'
    wal_level='replica'
    
  4. Starten Sie den AlloyDB Omni-Dienst neu:

    Docker

    docker restart CONTAINER_NAME

    Podman

    podman restart CONTAINER_NAME

    Ersetzen Sie CONTAINER_NAME durch den Namen, den Sie dem AlloyDB Omni-Container bei der Installation zugewiesen haben.

  5. Prüfen Sie mit dem folgenden Befehl, ob alle erforderlichen Parameter richtig festgelegt sind:

    Docker

    docker exec CONTAINER_NAME psql -h localhost -U postgres -c "
    SELECT name, setting
       FROM pg_catalog.pg_settings
       WHERE name IN ('archive_command',
                      'archive_mode',
                      'listen_addresses',
                      'wal_level')
       ORDER BY name;"

    Podman

    podman exec CONTAINER_NAME psql -h localhost -U postgres -c "
    SELECT name, setting
       FROM pg_catalog.pg_settings
       WHERE name IN ('archive_command',
                      'archive_mode',
                      'listen_addresses',
                      'wal_level')
       ORDER BY name;"

    Die Ausgabe sieht so aus:

       name          |  setting
    ------------------|-----------
    archive_command   | /bin/true
    archive_mode      | on
    listen_addresses  | *
    wal_level         | replica
    (4 rows)
    

Barman-Sicherungsserver einrichten

Führen Sie die folgenden Befehle auf Ihrem Barman-Server aus, um Barman für die Verwendung mit Ihrem AlloyDB Omni-Server einzurichten und zu konfigurieren.

  1. Prüfen Sie, ob die Verbindung für die Streamingreplikation funktioniert:

    psql -h DATABASE_IP -U streaming_barman -c "IDENTIFY_SYSTEM" replication=1

    Die Ausgabe sieht etwa so aus:

          systemid       | timeline |  xlogpos   | dbname
    ---------------------+----------+------------+--------
     7265722823667040273 |        1 | 0/1F0AFCD0 |
    (1 row)
    
  2. Prüfen Sie, ob Barman als Datenbanknutzer barman eine Verbindung zum AlloyDB Omni-Server herstellen kann.

    psql -t -h DATABASE_IP -U barman -d postgres -c "SELECT 'Connected as: '||current_user"

    Ersetzen Sie DATABASE_IP durch die IP-Adresse Ihres AlloyDB Omni-Servers.

    Die Ausgabe sieht etwa so aus:

    Connected as: barman
    
  3. Konfigurieren Sie den Barman-Sicherungsserver entsprechend Ihren Anforderungen und Einstellungen.

    Ihre Konfiguration muss die folgenden Einstellungen enthalten:

    • Legen Sie conninfo fest, um als Nutzer barman eine Verbindung zur AlloyDB Omni-Datenbank postgres herzustellen.
    • Legen Sie streaming_conninfo fest, um den Nutzer streaming_barman zu verwenden.
    • Konfigurieren Sie andere Direktiven, die zum Aktivieren des WAL-Streamings erforderlich sind, wie in der Barman-Dokumentation beschrieben.

    Das folgende minimale, aber vollständige Beispiel ändert ein Beispiel für eine Streamingkonfiguration aus der Barman-Dokumentation:

    [CONFIGURATION_TAG]
    description = "Backup settings for my AlloyDB Omni server"
    conninfo = host=DATABASE_IP user=barman dbname=postgres
    streaming_conninfo = host=DATABASE_IP user=streaming_barman
    backup_method = postgres
    streaming_archiver = on
    slot_name = barman
    

    Ersetzen Sie Folgendes:

    • CONFIGURATION_TAG: Ein kurzes Tag zur Identifizierung dieser Serverkonfiguration beim Ausführen von barman-Befehlen, z. B. omni.

    • DATABASE_IP: die IP-Adresse Ihres AlloyDB Omni-Servers.

  4. Wechseln Sie zum barman-Nutzer.

    sudo su - barman
  5. Verwenden Sie den Befehl barman receive-wal, um einen Replikationsslot zu erstellen und dann einen WAL-Stream vom Datenbankserver zu empfangen:

    barman receive-wal --create-slot CONFIGURATION_TAG
    barman receive-wal CONFIGURATION_TAG &

    Ersetzen Sie CONFIGURATION_TAG durch das Konfigurations-Tag, das Sie im vorherigen Schritt ausgewählt haben.

Barman ist jetzt für die Verwendung mit Ihrem AlloyDB Omni-Server konfiguriert. Informationen zum Prüfen des Replikationsstatus, zum Erstellen manueller Sicherungen und zum Ausführen anderer Aufgaben finden Sie unter Allgemeine Befehle.

Wenn Sie beispielsweise eine manuelle Sicherung erstellen möchten, führen Sie den Befehl barman backup aus.

Nächste Schritte