PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Barman Cloud – Teil 2:Cloud-Backup

Im ersten Teil dieses Blogs hat Jonathan erklärt, wie der barman-wal-archive-Befehl funktioniert. Vorausgesetzt, Sie haben diese Anweisungen befolgt, haben Sie eine ordnungsgemäß konfigurierte PostgreSQL-Instanz, die ausgeführt wird. In diesem zweiten Teil zeige ich Ihnen, wie das barman-cloud-backup Befehl funktioniert.


Wie Sie aus dem Befehlsnamen selbst erraten können, ist barman-cloud-backup ermöglicht es Ihnen, Backups direkt von einem PostgreSQL-Server auszuführen und einen S3-kompatiblen Objektspeicher in der Cloud als Ziel zu verwenden.

[email protected]:~ $ barman-cloud-backup --helpusage:barman-cloud-backup [-V] [--help] [-v | -q] [-P PROFIL] [-z | -j] [-e {AES256,aws:kms}] [-t] [-h HOST] [-p PORT] [-U USER] [--immediate-checkpoint] [-J JOBS] [-S MAX_ARCHIVE_SIZE] [--endpoint-url ENDPOINT_URL] destination_url server_nameDieses Skript kann verwendet werden, um eine Sicherung einer lokalen PostgreSQL-Instanz durchzuführen und die resultierenden Tarballs an die Cloud zu senden. Derzeit wird nur AWS S3 unterstützt. Positionsargumente:destination_url URL des Cloud-Ziels, z. B. ein Bucket in AWS S3. Zum Beispiel:`s3://bucket/path/to/folder`. server_name der Name des Servers, wie in Barman konfiguriert. Optionale Argumente:-V, --version zeigt die Versionsnummer des Programms und beendet --help zeigt diese Hilfemeldung und beendet -v, --verbose erhöht die Ausführlichkeit der Ausgabe (z. B. -vv ist mehr als -v) -q, --quiet Ausführlichkeit der Ausgabe verringern (z. B. -qq ist kleiner als -q) -P PROFILE, --profile PROFILE Profilname (z. B. INI-Abschnitt in der AWS-Anmeldeinformationsdatei) -z, --gzip gzip-komprimieren Sie die WAL beim Hochladen in die Cloud -j, --bzip2 bzip2-komprimieren Sie die WAL beim Hochladen in die Cloud -e {AES256,aws:kms}, --encryption {AES256,aws:kms} Serverseitig aktivieren Verschlüsselung für die Übertragung. Zulässige Werte:'AES256'|'aws:kms'. -t, --test Cloud-Konnektivität testen und beenden -h HOST, --host HOST Host oder Unix-Socket für PostgreSQL-Verbindung (Standard:libpq-Einstellungen) -p PORT, --port PORT Port für PostgreSQL-Verbindung (Standard:libpq-Einstellungen) -U USER, --user USER Benutzername für die PostgreSQL-Verbindung (Standard:libpq-Einstellungen) --immediate-checkpoint erzwingt, dass der anfängliche Checkpoint so schnell wie möglich durchgeführt wird -J JOBS, --jobs JOBS Anzahl der Unterprozesse, in die Daten hochgeladen werden sollen S3 (Standard:2) -S MAX_ARCHIVE_SIZE, --max-archive-size MAX_ARCHIVE_SIZE Maximale Größe eines Archivs beim Hochladen auf S3 (Standard:100 GB) --endpoint-url ENDPOINT_URL Überschreibt die standardmäßige S3-Endpunkt-URL mit der angegebenen> 

Jetzt, da wir eine klarere Vorstellung von dem Befehl und seinen Optionen haben, können wir unser erstes Cloud-Backup ausführen:

[email protected]:~ $ barman-cloud-backup -P barman-cloud \ -e AES256 -j --immediate-checkpoint -J 4 \ s3://barman-s3-test/ pg12

Nach erfolgreicher Sicherung wird die base Das Verzeichnis mit der Sicherung befindet sich in Ihrem S3-Bucket. Lassen Sie es uns überprüfen, indem wir den Zielpfad mit dem Servernamen und der base erstellen Verzeichnis:

[email protected]:~ $ aws s3 --profile barman-cloud ls s3://barman-s3-test/pg12/base/ PRE 20200713T120856/

Alternativ können Sie barman-cloud-backup-list verwenden , aber in diesem Artikel möchte ich mich auf die Mechanismen dahinter konzentrieren.

Der 20200711T092548 Verzeichnis enthält alle Dateien, die sich auf die Sicherung beziehen, die wir gerade ausgeführt haben. Sehen wir uns den Inhalt an:

[email protected]:~ $ aws s3 --profile barman-cloud ls s3://barman-s3-test/pg12/base/20200713T120856/2020-07-13 12:09:08 1138 backup.info2020 -07-13 12:09:07 9263096 data.tar.bz2

Wie wir sehen können, gibt es eine komprimierte und verschlüsselte Datei, die unser Backup enthält (data.tar.bz2 ) und eine Datei namens backup.info enthält die Informationen zur Sicherung. Wir können die Sicherung wiederherstellen, indem wir die data.tar.bz2 kopieren und entpacken Datei auf unserem lokalen Server wie unten gezeigt:

[email protected]:~ $ aws s3 --profile barman-cloud cp s3://barman-s3-test/pg12/base/20200713T120856/data.tar.bz2 restore-dirdownload:s3://barman -s3-test/pg12/base/20200713T120856/data.tar.bz2 an restore-dir/[email protected]:~ $ cd [email protected]:~/restore-dir $ tar xjvf [email protected]:~/restore-dir $ lsPG_VERSION conf.d pg_commit_ts pg_ident.conf pg_notify pg_snapshots pg_subtrans pg_wal postgresql.confbackup_label data.tar.bz2 pg_dynshmem pg_logical pg_replslot pg_stat pg_tblspc pg_xactbase global pg_hba.conf pg_multixact pg_serial pg_stat_tmp pg_twophase postgresql.auto.conf

Toll! Wie wir sehen können, werden alle Dateien im DATADIR der PostgreSQL-Instanz, die wir gesichert haben, einschließlich der Konfigurationsdateien, hier korrekt aufgelistet.

Schlussfolgerungen

Mit dem barman-cloud-backup command Barman führt eine wichtige Funktion ein, mit der Sie in nur wenigen einfachen Schritten Basissicherungen von einem lokalen PostgreSQL-Server ausführen und direkt an Cloud-Objektspeicherdienste senden können, die mit AWS S3 kompatibel sind. Es unterstützt Verschlüsselung, paralleles Hochladen, Komprimieren und ermöglicht es, Speicherplatz auf Ihrem lokalen Server zu sparen und die Backups sicher in die Cloud zu übertragen.

Mit der Veröffentlichung von Barman 2.11 , was vor ein paar Tagen geschah, wurden wichtige neue Funktionen eingeführt, einschließlich der barman-cloud-wal-restore und die barman-cloud-restore Befehle, die es ermöglichen, die Sicherungs- und WAL-Dateien aus einem Objektspeicher wie AWS S3 abzurufen. In diesem Zusammenhang werden wir in Kürze einen neuen Blogartikel veröffentlichen, in dem erläutert wird, wie Sie die Wiederherstellung einer PostgreSQL-Instanz mithilfe dieser Befehle vorbereiten. Bleiben Sie dran.