PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Barman Cloud – Част 2:Облачно архивиране

В първата част на този блог Джонатан обясни как работи командата barman-wal-archive. Сега, ако приемем, че сте следвали тези инструкции, имате правилно конфигуриран екземпляр на PostgreSQL и работи. В тази втора част ще ви покажа как barman-cloud-backup командата работи.


Както можете да се досетите от самото име на командата, barman-cloud-backup командата ви позволява да изпълнявате резервни копия директно от сървър на PostgreSQL и да използвате съвместимо със S3 обекти в облака като дестинация.

[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

Сега, когато имаме по-ясна представа за командата и нейните опции, сме готови да изпълним първото си архивиране в облак:

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

След като архивирането приключи успешно, base директория, съдържаща архива, ще бъде във вашата S3 кофа. Нека го проверим, като изградим пътя на дестинацията с името на сървъра и base директория:

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

Като алтернатива можете да използвате barman-cloud-backup-list , но в тази статия бих искал да се съсредоточа върху механиката зад него.

20200711T092548 директорията съдържа всички файлове, свързани с архивирането, което току-що изпълнихме. Нека разгледаме съдържанието му:

[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

Както виждаме, има компресиран и криптиран файл, съдържащ нашия архив (data.tar.bz2 ) и файл, наречен backup.info съдържаща информацията, свързана с архивирането. Можем да възстановим архива, като копираме и разархивираме data.tar.bz2 файл на нашия локален сървър, както е показано по-долу:

[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

Страхотен! Както виждаме, всички файлове в DATADIR на PostgreSQL екземпляр, които сме архивирали, включително конфигурационните файлове, са изброени правилно тук.

Заключения

С barman-cloud-backup Командата Barman въвежда важна функция, която ви позволява да изпълнявате и директно изпращате базови архиви от локален PostgreSQL сървър към услуги за съхранение на облачни обекти, които са съвместими с AWS S3 само с няколко прости стъпки. Той поддържа криптиране, паралелно качване, компресиране и позволява да се спести дисково пространство на вашия локален сървър и да се прехвърлят безопасно архивните копия в облака.

С пускането на Barman 2.11 , което се случи преди няколко дни, бяха въведени важни нови функции, включително barman-cloud-wal-restore и barman-cloud-restore команди, които позволяват да се извличат архивните и WAL файлове от обектно хранилище като AWS S3. В тази връзка скоро ще публикуваме нова статия в блога, обясняваща как да подготвим възстановяването на екземпляр на PostgreSQL с помощта на тези команди. Останете на линия.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. psycopg2 всъщност не вмъква данни

  2. как да проверите вида на стойността в postgres

  3. непълна информация от заявка за pg_views

  4. Поръчайте varchar низ като число

  5. Създаване на потребител на PostgreSQL и добавянето им към база данни