sql >> Database teknologi >  >> RDS >> PostgreSQL

Barman Cloud – Del 2:Cloud Backup

I den første del af denne blog forklarede Jonathan, hvordan kommandoen barman-wal-archive fungerer. Nu, forudsat at du fulgte disse instruktioner, har du en korrekt konfigureret PostgreSQL-instans oppe og køre. I denne anden del vil jeg vise dig hvordan barman-cloud-backup kommandoen virker.


Som du kan gætte ud fra selve kommandonavnet, er barman-cloud-backup kommandoen giver dig mulighed for at udføre sikkerhedskopier direkte fra en PostgreSQL-server og bruge et S3-kompatibelt objektlager i skyen som destination.

[email protected]:~ $ barman-cloud-backup --help
usage: barman-cloud-backup [-V] [--help] [-v | -q] [-P PROFILE] [-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_name

This script can be used to perform a backup of a local PostgreSQL instance and
ship the resulting tarball(s) to the Cloud. Currently only AWS S3 is supported.

positional arguments:
  destination_url       URL of the cloud destination, such as a bucket in AWS
                        S3. For example: `s3://bucket/path/to/folder`.
  server_name           the name of the server as configured in Barman.

optional arguments:
  -V, --version         show program's version number and exit
  --help                show this help message and exit
  -v, --verbose         increase output verbosity (e.g., -vv is more than -v)
  -q, --quiet           decrease output verbosity (e.g., -qq is less than -q)
  -P PROFILE, --profile PROFILE
                        profile name (e.g. INI section in AWS credentials
                        file)
  -z, --gzip            gzip-compress the WAL while uploading to the cloud
  -j, --bzip2           bzip2-compress the WAL while uploading to the cloud
  -e {AES256,aws:kms}, --encryption {AES256,aws:kms}
                        Enable server-side encryption for the transfer.
                        Allowed values: 'AES256'|'aws:kms'.
  -t, --test            Test cloud connectivity and exit
  -h HOST, --host HOST  host or Unix socket for PostgreSQL connection
                        (default: libpq settings)
  -p PORT, --port PORT  port for PostgreSQL connection (default: libpq
                        settings)
  -U USER, --user USER  user name for PostgreSQL connection (default: libpq
                        settings)
  --immediate-checkpoint
                        forces the initial checkpoint to be done as quickly as
                        possible
  -J JOBS, --jobs JOBS  number of subprocesses to upload data to S3 (default:
                        2)
  -S MAX_ARCHIVE_SIZE, --max-archive-size MAX_ARCHIVE_SIZE
                        maximum size of an archive when uploading to S3
                        (default: 100GB)
  --endpoint-url ENDPOINT_URL
                        Override default S3 endpoint URL with the given one

Nu hvor vi har en klarere idé om kommandoen og dens muligheder, er vi klar til at udføre vores første cloud backup:

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

Når sikkerhedskopieringen er gennemført, vil base mappe, der indeholder sikkerhedskopien, vil være i din S3-bøtte. Lad os tjekke det og bygge destinationsstien med servernavnet og base mappe:

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

Alternativt kan du bruge barman-cloud-backup-list , men i denne artikel vil jeg gerne fokusere på mekanikken bag.

20200711T092548 biblioteket indeholder alle filer relateret til den sikkerhedskopi, som vi lige har udført. Lad os se på indholdet:

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

Som vi kan se, er der en komprimeret og krypteret fil, der indeholder vores backup (data.tar.bz2 ) og en fil kaldet backup.info indeholdende oplysninger relateret til sikkerhedskopieringen. Vi kan gendanne sikkerhedskopien ved at kopiere og udpakke data.tar.bz2 fil på vores lokale server som vist nedenfor:

[email protected]:~ $ aws s3 --profile barman-cloud cp s3://barman-s3-test/pg12/base/20200713T120856/data.tar.bz2 restore-dir
download: s3://barman-s3-test/pg12/base/20200713T120856/data.tar.bz2 to restore-dir/data.tar.bz2

[email protected]:~ $ cd restore-dir

[email protected]:~/restore-dir $ tar xjvf data.tar.bz2

[email protected]:~/restore-dir $ ls
PG_VERSION    conf.d        pg_commit_ts  pg_ident.conf  pg_notify    pg_snapshots  pg_subtrans  pg_wal                postgresql.conf
backup_label  data.tar.bz2  pg_dynshmem   pg_logical     pg_replslot  pg_stat       pg_tblspc    pg_xact
base          global        pg_hba.conf   pg_multixact   pg_serial    pg_stat_tmp   pg_twophase  postgresql.auto.conf

Store! Som vi kan se, er alle filerne i DATADIR for PostgreSQL-instansen, som vi har sikkerhedskopieret, inklusive konfigurationsfilerne, angivet korrekt her.

Konklusioner

Med barman-cloud-backup kommando Barman introducerer en vigtig funktion, der giver dig mulighed for at udføre og direkte sende basebackups fra en lokal PostgreSQL-server til cloud-objektlagringstjenester, der er kompatible med AWS S3, i nogle få enkle trin. Det understøtter kryptering, parallel upload, komprimering og gør det muligt at spare diskplads på din lokale server og overføre sikkerhedskopierne sikkert til skyen.

Med udgivelsen af ​​Barman 2.11 , hvilket skete for et par dage siden, er vigtige nye funktioner blevet introduceret, inklusive barman-cloud-wal-restore og barman-cloud-restore kommandoer, som gør det muligt at hente backup- og WAL-filer fra et objektlager såsom AWS S3. I den forbindelse vil vi snart udgive en ny blogartikel, der forklarer, hvordan man forbereder gendannelsen af ​​en PostgreSQL-instans ved hjælp af disse kommandoer. Følg med.


  1. Bedste DBaaS-løsning til MySQL

  2. Forstå indekser i MySQL:Tredje del

  3. Formater tal med komma i SQLite

  4. Gendan SQL-database nemt – Trin-for-trin-vejledning