PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Barman Cloud – Bagian 2:Cloud Backup

Di bagian pertama blog ini, Jonathan menjelaskan cara kerja perintah barman-wal-archive. Sekarang, dengan asumsi Anda mengikuti instruksi tersebut, Anda memiliki instance PostgreSQL yang dikonfigurasi dengan benar dan berjalan. Di bagian kedua ini, saya akan menunjukkan cara barman-cloud-backup perintah berfungsi.


Seperti yang bisa Anda tebak dari nama perintah itu sendiri, barman-cloud-backup perintah memungkinkan Anda untuk menjalankan pencadangan langsung dari server PostgreSQL dan menggunakan penyimpanan objek yang kompatibel dengan S3 di Cloud sebagai tujuan.

[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

Sekarang setelah kami memiliki gagasan yang lebih jelas tentang perintah dan opsinya, kami siap untuk menjalankan pencadangan cloud pertama kami:

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

Setelah pencadangan berhasil diselesaikan, base direktori yang berisi cadangan akan ada di ember S3 Anda. Mari kita periksa, membangun jalur tujuan dengan nama server dan base direktori:

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

Atau, Anda dapat menggunakan barman-cloud-backup-list , tetapi dalam artikel ini saya ingin fokus pada mekanisme di baliknya.

20200711T092548 direktori berisi semua file yang terkait dengan cadangan yang baru saja kita jalankan. Mari kita lihat isinya:

[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

Seperti yang kita lihat, ada file terkompresi dan terenkripsi yang berisi cadangan kami (data.tar.bz2 ) dan file bernama backup.info berisi informasi yang terkait dengan pencadangan. Kami dapat memulihkan cadangan dengan menyalin dan membuka ritsleting data.tar.bz2 file di server lokal kami seperti yang ditunjukkan di bawah ini:

[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

Besar! Seperti yang dapat kita lihat, semua file dalam DATADIR dari instance PostgreSQL yang kami cadangkan, termasuk file konfigurasi, terdaftar dengan benar di sini.

Kesimpulan

Dengan barman-cloud-backup command Barman memperkenalkan fitur penting yang memungkinkan Anda untuk mengeksekusi dan mengirimkan cadangan dasar secara langsung dari server PostgreSQL lokal ke layanan penyimpanan objek cloud yang kompatibel dengan AWS S3 hanya dalam beberapa langkah sederhana. Ini mendukung enkripsi, unggahan paralel, kompresi, dan memungkinkan untuk menghemat ruang disk di server lokal Anda dan mentransfer cadangan dengan aman ke cloud.

Dengan dirilisnya Barman 2.11 , yang terjadi beberapa hari yang lalu, fitur baru yang penting telah diperkenalkan, termasuk barman-cloud-wal-restore dan barman-cloud-restore perintah, yang memungkinkan untuk mengambil cadangan dan file WAL dari penyimpanan objek seperti AWS S3. Sehubungan dengan itu, kami akan segera menerbitkan artikel blog baru yang menjelaskan cara mempersiapkan pemulihan instance PostgreSQL menggunakan perintah ini. Pantau terus.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendaftar Semua Tampilan di Database PostgreSQL

  2. Konversikan file dump SQLITE SQL ke POSTGRESQL

  3. daftar tipe Postgres ENUM

  4. Load Balancing PostgreSQL di Cloud Menjadi Mudah

  5. Hitung jumlah acara bersamaan dalam SQL