Selasa, 16 Juli 2024

POSTGRES-pgbackrest ubuntu

 

Memulai pgBackRest: Lakukan Pencadangan Pertama Anda
https://www.commandprompt.com/blog/getting-started-with-pgbackrest-perform-your-first-backup/

Pendahuluan

pgBackRest adalah solusi pencadangan lengkap dan pengarsipan berkelanjutan untuk PostgreSQL yang menawarkan dukungan untuk pemulihan point-in-time (PITR), pencadangan dan pemulihan multi-thread yang cepat, kompresi dan enkripsi cadangan, dan banyak lagi. Pada artikel ini, kita akan menjelajahi fitur pgBackRest dan menyajikan cara menyiapkan konfigurasi dasar pgBackRest.

pgBackRest mendukung tiga jenis pencadangan: penuh, tambahan, dan diferensial. Pencadangan penuh menyalin seluruh konten klaster database, sedangkan pencadangan inkremental/diferensial hanya menyalin file cluster database yang telah berubah sejak pencadangan penuh terakhir. Pencadangan tambahan membantu mengurangi waktu pencadangan dan penggunaan ruang disk. Secara default, pgBackRest akan mencoba melakukan pencadangan tambahan untuk menyalin file cluster database yang telah berubah sejak pencadangan terakhir, namun jika tidak ada pencadangan sebelumnya, pencadangan penuh akan dijalankan.

Fitur:

Pencadangan & Pemulihan Paralel : Untuk meningkatkan kinerja dan transfer selama pencadangan, pgBackRest memungkinkan untuk mengatur beberapa proses menggunakan algoritma kompresi lz4 dan zstd. Ini dapat ditentukan dalam parameter --process-max.

Operasi Lokal atau Jarak Jauh : pgBackRest dapat memulihkan dan mencadangkan secara lokal atau jarak jauh menggunakan TLS/SSH.

Pencadangan Penuh, Diferensial, & Inkremental (di Tingkat File atau Blok) : pgBackRest mendukung jenis pencadangan berikut:

  • Cadangan penuh: Semua data dikirim ke lokasi lain.
  • Pencadangan diferensial: Hanya mencadangkan file yang telah diubah sejak pencadangan penuh terakhir.
  • Pencadangan tambahan: Hanya mencadangkan file yang diubah sejak pencadangan terakhir.

Rotasi Cadangan & Kedaluwarsa Arsip : Kebijakan penyimpanan dapat diatur ke cadangan untuk jangka waktu apa pun. Misalnya, arsip WAL mungkin disimpan untuk semua cadangan atau cadangan terbaru.

Integritas Cadangan : pgBackRest menghitung checksum untuk setiap file dalam cadangan dan diperiksa selama pemulihan atau verifikasi.

Checksum Halaman : PostgreSQL mulai mendukung Checksum pada versi 9.3. Jika checksum diaktifkan, pgBackrest akan memvalidasinya sesuai dengan jenis cadangan. Selama pencadangan penuh, pgBackrest akan memvalidasi semua checksum. Selama pencadangan diferensial dan inkremental, hanya file yang diubah yang akan divalidasi.

Lanjutkan Pencadangan : Jika pencadangan terganggu, pencadangan dapat dipulihkan. File yang sudah disalin dibandingkan dengan checksum. Hal ini menghemat waktu karena menghitung ulang checksum lebih cepat daripada mengirimkan ulang data.

Kompresi Streaming & Checksum : Perhitungan kompresi dan checksum dilakukan saat file disalin ke repositori.

Delta Restore : PgBackRest menyimpan checksum untuk setiap file cadangan untuk mempercepat pemulihan apa pun. Dalam kasus Pemulihan Delta, file yang tidak ada dalam cadangan akan dihapus, dan checksum dibuat untuk file lainnya. File yang cocok dengan cadangan tetap sama sementara sisanya dipulihkan.

Paralel, Asynchronous WAL Push & Get : Perintah Push dan Get tersedia untuk mendorong dan membawa WAL ke dan dari arsip.

Dukungan Tablespace & Tautan : Tablespace dan tautan direktori didukung. Tablespace dapat dipetakan ulang ke lokasi mana pun. Selain itu, tautan dapat dikembalikan ke lokasi aslinya, dipetakan ulang, atau dipulihkan sebagai file atau direktori dalam cluster.

Dukungan Penyimpanan Objek yang Kompatibel dengan S3, Azure, dan GCS : Repositori PgBackRest dapat disimpan di penyimpanan objek yang kompatibel dengan Amazon S3, Azure, dan GCS.

Enkripsi : PgBackrest dapat mengenkripsi repositori untuk mengamankan cadangan yang disimpan.

Kompatibilitas dengan sepuluh versi PostgreSQL : PgBackRest berkomitmen untuk menjaga kompatibilitas dengan lima versi PostgreSQL yang didukung dan lima versi akhir masa pakainya.

Petunjuk pemasangan:

Untuk menginstal pgBackRest pada sistem operasi Ubuntu, Anda dapat menjalankan perintah berikut:

sudo pembaruan yang tepat
sudo apt -y install pgbackrest

Jika pgBackRest tidak tersedia dalam distribusi Anda, Anda dapat menemukan informasi lebih lanjut di https://pgbackrest.org/user-guide.html#installation

Demo: Melakukan Pencadangan Pertama Anda

Untuk demo ini, kami akan mengonfigurasi pgBackrest dengan Postgres dan mensimulasikan pencadangan. Ini adalah pengaturan sederhana yang tidak menggunakan replika.

Buka config_file Postgres dengan editor teks pilihan Anda. Untuk menemukan di mana config_file Anda berada, Anda dapat memasukkan yang berikut ini di terminal:

sudo -iu postgres
psql
TAMPILKAN file_konfigurasi;

Ini akan menampilkan yang berikut:

mariubuntu1

Setelah Anda menemukan file Anda, edit parameter berikut:

listening_addresses = '[alamat IP host]'
password_encryption ='scram-sha- 256 '
archive_mode = aktif

Sekarang, setel ulang layanan agar perubahan diterapkan:

sudo  systemctl  restart  postgresql- [versi] .service

Untuk memeriksa apakah parameter telah diperbarui, Anda dapat mengetikkan perintah dan kueri berikut:

Sudo -iu postgres
Psql
PILIH  nama , pengaturan, konteks , sumber  DARI pg_settings WHERE  NAME  IN ( 'listen_addresses' , 'archive_mode' , 'password_encryption' );

Ini akan menampilkan tabel dengan nilai yang diperbarui:

mariubuntu2

Buat repositori cadangan pgBackRest:

sudo mkdir -p / var /lib/pgbackrest
sudo chmod 750 /var/lib/pgbackrest
sudo chown postgres:postgres / var /lib/pgbackrest
sudo chown -R postgres:postgres /var/ log /pgbackrest

Buat cadangan untuk file konfigurasi pgBackRest Anda:

sudo cp /etc/pgbackrest.conf /etc/pgbackrest.conf.backup

Sekarang kita akan membuat kunci untuk mengenkripsi repositori:

openssl rand -base 64  48

Edit file pgbackrest.conf menggunakan editor teks pilihan Anda. Rekatkan yang berikut ini ke dalam file:

[global]
repo1-cipher-pass =[Salin kunci yang Anda buat sebelumnya]
repo1-cipher-type =aes- 256 -cbc
repo1-path =/var/lib/pgbackrest
repo1-retensi-penuh = 2
konsol tingkat log =info
file tingkat log =debug
[demo]
pg1-path =/var/lib/postgresql/[versi]/main

Sekarang, kita dapat membuat bait kita, yang kita sebut demo seperti nama repositori:

sudo -u postgres pgbackrest --stanza=demo stanza-buat

Sekarang semuanya sudah siap, kita dapat melakukan backup. Pertama, buka file konfigurasi Postgres Anda dan edit parameter archive_command sebagai berikut:

archive_command = 'pgbackrest --stanza=demo arsip-push %p'

Agar perubahan dapat diterapkan, kita perlu memuat ulang database:

sudo  systemctl  muat ulang  postgresql- [versi] .service

Sekarang, mari kita periksa apakah bait kita baik-baik saja:

sudo -iu postgres pgbackrest --stanza=cek demo

mariubuntu3

Sekarang kita akhirnya dapat melakukan backup dengan perintah berikut:

sudo -u postgres pgbackrest --stanza=demo -- ketik =cadangan penuh

Perintah ini bisa memakan waktu lima menit secara default karena parameter checkpoint_timeout di postgres. Checkpoint adalah titik pada urutan transaksi dimana perubahan pada file data dijamin sudah ada di disk. Server melakukan pos pemeriksaan setiap scheckpoint_timeout detik atau jika parameter max_wal_size akan terlampaui. Meskipun mengurangi scheckpoint_timeout menghasilkan pos pemeriksaan yang lebih sering (sehingga mempercepat pemulihan setelah kerusakan karena jumlah file data yang harus dipulihkan lebih sedikit), hal ini tidak disarankan karena terus-menerus menulis halaman kotor ke disk dapat membebani sistem I/O dengan meningkatkan lalu lintas ke WAL catatan.

Sekarang kita harus memastikan bahwa bait kita ada memiliki cadangan lengkap:

Sudo -u postgres pgbackrest info

Mari kita simulasikan bencana administrasi sistem dengan menghapus file data database.

Pertama, hentikan layanan postgresql:

sudo  systemctl  stop  postgresql- [versi] .service
sudo temukan /var/lib/pgsql/ 12 /data -min depth 1 -delete

Jika kita mencoba memulai database, ini akan mengakibatkan kegagalan sebagai berikut:

sudo  systemctl  mulai  postgresql- [versi] .layanan

mariaubuntu4

Sekarang kita telah menghapus semua file data ini, mari lanjutkan dan pulihkan:

sudo -iu postgres pgbackrest --stanza=demo --delta pulihkan

Kita seharusnya dapat memulai postgresql lagi:

Sudo  systemctl  mulai  postgresql- [versi] .service

Periksa apakah pgBackRest berfungsi:

sudo -u postgres pgbackrest --stanza=demo cek

Terakhir, praktik yang baik adalah melakukan pencadangan lain setelah kejadian bencana:

sudo -u postgres pgbackrest --stanza=demo -- ketik =cadangan penuh

Kesimpulan

Artikel ini kita membahas fitur pgBackrest, serta cara menginstal dan melakukan pencadangan pada database sampel.

Merangkum langkah-langkah yang kami ambil dalam pencadangan kami:

  • Perbarui mode_arsip dan parameter enkripsi di file konfigurasi Anda
  • Buat repositori cadangan pgBackRest
  • Buat cadangan untuk file konfigurasi pgBackRest Anda
  • Hasilkan kunci untuk mengenkripsi repositori
  • Perbarui file pgbackrest.conf Anda untuk menambahkan informasi sandi dan jalur untuk repositori
  • Buatlah sebuah bait
  • Perbarui parameter archive_command di file konfigurasi postgres sebagai 'pgbackrest --stanza=[stanza_name] archive-push %p'
  • Hentikan layanan postgres dan hapus file datanya untuk menyimulasikan bencana
  • Pulihkan database dengan “sudo -iu postgres pgbackrest --stanza=[stanza_name] --delta restore”

Karya Referensi:

[1] https://pgbackrest.org/

[2] https://www.crunchydata.com/blog/how-to-get-started-with-pgbackrest-and-postgresql-12

[3] https://www.postgresql.org/docs/current/wal-configuration.html

[4] https://pgbackrest.org/configuration.html#section-general/option-process-max

[5] https://pgbackrest.org/user-guide.html#installation

Tidak ada komentar:

Posting Komentar