sql >> Database >  >> RDS >> PostgreSQL

Barman Cloud – Deel 2:Cloudback-up

In het eerste deel van deze blog legde Jonathan uit hoe het barman-wal-archief-commando werkt. Nu, ervan uitgaande dat je die instructies hebt gevolgd, heb je een correct geconfigureerde PostgreSQL-instantie in gebruik. In dit tweede deel laat ik je zien hoe de barman-cloud-backup commando werkt.


Zoals je kunt raden aan de naam van de opdracht zelf, is de barman-cloud-backup commando stelt u in staat om back-ups rechtstreeks vanaf een PostgreSQL-server uit te voeren en een S3-compatibele objectopslag in de cloud als bestemming te gebruiken.

[email protected]:~ $ barman-cloud-backup --helpusage:barman-cloud-backup [-V] [--help] [-v | -q] [-P PROFIEL] [-z | -j] [-e {AES256,aws:kms}] [-t] [-h HOST] [-p PORT] [-U USER] [--onmiddellijke-checkpoint] [-J JOBS] [-S MAX_ARCHIVE_SIZE] [--endpoint-url ENDPOINT_URL] destination_url server_nameDit script kan worden gebruikt om een ​​back-up van een lokale PostgreSQL-instantie te maken en de resulterende tarball(s) naar de cloud te verzenden. Momenteel wordt alleen AWS S3 ondersteund.positionele argumenten:destination_url URL van de cloudbestemming, zoals een bucket in AWS S3. Bijvoorbeeld:`s3://bucket/pad/naar/map`. server_name de naam van de server zoals geconfigureerd in Barman.optionele argumenten:-V, --version toon het versienummer van het programma en exit --help toon dit helpbericht en exit -v, --verbose vergroot de breedsprakigheid van de uitvoer (bijv. -vv is meer dan -v) -q, --quiet output breedsprakigheid verminderen (bijv. -qq is minder dan -q) -P PROFILE, --profile PROFILE profielnaam (bijv. INI-sectie in AWS-referentiebestand) -z, --gzip gzip-comprimeer de WAL tijdens het uploaden naar de cloud -j, --bzip2 bzip2-comprimeer de WAL tijdens het uploaden naar de cloud -e {AES256,aws:kms}, --encryption {AES256,aws:kms} Schakel server-side in encryptie voor de overdracht. Toegestane waarden:'AES256'|'aws:kms'. -t, --test Test cloudconnectiviteit en sluit af -h HOST, --host HOST-host of Unix-socket voor PostgreSQL-verbinding (standaard:libpq-instellingen) -p PORT, --port PORT-poort voor PostgreSQL-verbinding (standaard:libpq-instellingen) -U USER, --user USER gebruikersnaam voor PostgreSQL-verbinding (standaard:libpq-instellingen) --immediate-checkpoint dwingt het initiële controlepunt zo snel mogelijk uit te voeren -J JOBS, --jobs JOBS aantal subprocessen om gegevens naar te uploaden S3 (standaard:2) -S MAX_ARCHIVE_SIZE, --max-archive-size MAX_ARCHIVE_SIZE maximale grootte van een archief bij uploaden naar S3 (standaard:100 GB) --endpoint-url ENDPOINT_URL Overschrijf de standaard S3-eindpunt-URL door de opgegeven URL> 

Nu we een duidelijker idee hebben van de opdracht en de opties, zijn we klaar om onze eerste cloudback-up uit te voeren:

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

Nadat de back-up met succes is voltooid, wordt de base map met de back-up bevindt zich in uw S3-bucket. Laten we het eens controleren en het bestemmingspad bouwen met de servernaam en de base map:

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

Als alternatief kunt u barman-cloud-backup-list . gebruiken , maar in dit artikel wil ik me concentreren op de mechanica erachter.

De 20200711T092548 directory bevat alle bestanden met betrekking tot de back-up die we zojuist hebben uitgevoerd. Laten we eens kijken naar de inhoud:

[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

Zoals we kunnen zien, is er een gecomprimeerd en versleuteld bestand met onze back-up (data.tar.bz2 ) en een bestand met de naam backup.info met de informatie met betrekking tot de back-up. We kunnen de back-up herstellen door de data.tar.bz2 . te kopiëren en uit te pakken bestand op onze lokale server zoals hieronder getoond:

[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 naar 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

Super goed! Zoals we kunnen zien, worden alle bestanden in de DATADIR van de PostgreSQL-instantie waarvan we een back-up hebben gemaakt, inclusief de configuratiebestanden, hier correct weergegeven.

Conclusies

Met de barman-cloud-backup command Barman introduceert een belangrijke functie waarmee u in slechts een paar eenvoudige stappen basisback-ups van een lokale PostgreSQL-server kunt uitvoeren en rechtstreeks kunt verzenden naar cloudobjectopslagservices die compatibel zijn met AWS S3. Het ondersteunt codering, parallelle upload, compressie en maakt het mogelijk om schijfruimte op uw lokale server te besparen en de back-ups veilig naar de cloud over te brengen.

Met de release van Barman 2.11 , wat een paar dagen geleden gebeurde, zijn belangrijke nieuwe functies geïntroduceerd, waaronder de barman-cloud-wal-restore en de barman-cloud-restore commando's, waarmee de back-up en WAL-bestanden kunnen worden opgehaald uit een objectopslag zoals AWS S3. In dat opzicht zullen we binnenkort een nieuw blogartikel publiceren waarin wordt uitgelegd hoe u het herstel van een PostgreSQL-instantie kunt voorbereiden met behulp van deze opdrachten. Blijf op de hoogte.


  1. Hoe flexibel/beperkend zijn SQLite-kolomtypen?

  2. Wachtgebeurtenissen SQL Server -3

  3. LEFT OUTER JOIN of RIGHT OUTER JOIN vinden met ORACLE JOIN (+)

  4. Hoe Group_Concat() werkt in SQLite