Auf dieser Seite erfahren Sie, wie Sie Ihre Daten schützen, indem Sie AlloyDB Omni für die Zusammenarbeit mit Barman, einem Open-Source-Datenbanksicherungsserver, konfigurieren.
Sie können Ihre AlloyDB Omni-Daten mit jeder Datenbanksicherungstechnologie schützen, die mit PostgreSQL funktioniert. Sie können AlloyDB Omni beispielsweise so konfigurieren, dass Verbindungen von einem von Ihnen verwalteten Barman-Server 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 Barman-Befehle ausführen, um eine Vielzahl von Aufgaben zum Schutz und zur Notfallwiederherstellung von Daten auszuführen, darunter:
- Erstellen Sie eine On-Demand-Sicherung Ihrer Daten.
- Richten Sie ein synchrones WAL-Streaming Ihrer Datenänderungen auf dem Sicherungsserver ein.
- Wiederherstellung aus einer bestimmten Sicherung
- Führen Sie eine Wiederherstellung zu einem bestimmten Zeitpunkt aus.
Weitere Informationen zur Verwendung 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 ist auf einem von Ihnen verwalteten Server installiert und wird ausgeführt.
Barman auf einem separaten Server installiert Der Server, auf dem Sie Barman installiert haben, muss über TCP mit dem AlloyDB Omni-Server kommunizieren können.
AlloyDB Omni für die Verwendung mit Barman konfigurieren
Um Ihren AlloyDB Omni-Server für die Arbeit mit Barman vorzubereiten, führen Sie die folgenden Befehle auf dem Server aus, auf dem Sie AlloyDB Omni installiert haben.
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.Fügen Sie die folgenden Zeilen in der Datei
DATA_DIR/pg_hba.conf
vor der Zeilehost all all all scram-sha-256
hinzu: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-Dateiverzeichnis 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 der Barman-Server ohne Passwort authentifiziert werden soll, verwenden Sie
trust
.Wenn ein Passwort vom Barman-Server erforderlich sein soll, verwenden Sie
scram-sha-256
.
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'
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.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.
Prüfen Sie, ob die Verbindung für die Streaming-Replikation funktioniert:
psql -h DATABASE_IP -U streaming_barman -c "IDENTIFY_SYSTEM" replication=1
Die Ausgabe sieht in etwa so aus:
systemid | timeline | xlogpos | dbname ---------------------+----------+------------+-------- 7265722823667040273 | 1 | 0/1F0AFCD0 | (1 row)
Achten Sie darauf, dass Barman als
barman
-Datenbanknutzer 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 in etwa so aus:
Connected as: barman
Konfigurieren Sie den Barman-Sicherungsserver gemäß Ihren Anforderungen und Vorlieben.
Ihre Konfiguration muss die folgenden Einstellungen enthalten:
- Legen Sie fest, dass
conninfo
als Nutzerbarman
eine Verbindung zur AlloyDB Omni-Datenbankpostgres
herstellen soll. - Legen Sie für
streaming_conninfo
den Nutzerstreaming_barman
fest. - Konfigurieren Sie gemäß der Barman-Dokumentation weitere Anweisungen, die zum Aktivieren des WAL-Streams erforderlich sind.
Im folgenden minimalen, aber vollständigen Beispiel wird ein Beispiel für eine Streamingkonfiguration aus der Barman-Dokumentation geändert:
[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, das diese Serverkonfiguration beim Ausführen vonbarman
-Befehlen identifiziert, z. B.omni
.DATABASE_IP
: die IP-Adresse Ihres AlloyDB Omni-Servers.
- Legen Sie fest, dass
Wechseln Sie zum
barman
-Nutzer.sudo su - barman
Erstellen Sie mit dem Befehl
barman receive-wal
einen Replikationsslot und beginnen Sie 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.