pgBackRest: pencadangan PostgreSQL S3
Tutorial ini menjelaskan cara mem-backup database PostgreSQL menggunakan pgBackRest dan S3.
https://bun.uptrace.dev/postgres/pgbackrest-s3-backups.html
Perkenalan
pgBackRest adalah solusi Pencadangan & Pemulihan PostgreSQL modern yang memiliki semua fitur yang mungkin Anda perlukan:
- Pencadangan dan pemulihan paralel.
- Pencadangan penuh, diferensial, dan tambahan.
- Pemulihan Delta.
- Kompresi ZSTD.
- Enkripsi.
- Dan masih banyak lagi .
Instalasi
Ubuntu menyediakan paket pra-kompilasi untuk pgbackrest:
sudo apt install pgbackrest
Ketentuan
Stanza adalah konfigurasi pgBackRest untuk cluster database PostgreSQL. Kebanyakan server db hanya memiliki satu cluster db dan karenanya satu bait.
Repositori adalah tempat pgBackRest menyimpan cadangan dan mengarsipkan segmen WAL.
Konfigurasi
Mari buat struktur direktori dasar untuk konfigurasi dan log:
mkdir -m 770 /var/log/pgbackrest
chown postgres:postgres /var/log/pgbackrest
mkdir /etc/pgbackrest
Dan simpan konfigurasi berikut di /etc/pgbackrest/pgbackrest.conf
:
[demo]
pg1-path=/var/lib/postgresql/14/main
[global]
repo1-retention-full=3 # keep last 3 backups
repo1-type=s3
repo1-path=/s3-path
repo1-s3-region=us-east-1
repo1-s3-endpoint=s3.amazonaws.com
repo1-s3-bucket=s3_bucket_name
repo1-s3-key=$AWS_ACCESS_KEY
repo1-s3-key-secret=$AWS_SECRET_KEY
# Force a checkpoint to start backup immediately.
start-fast=y
# Use delta restore.
delta=y
# Enable ZSTD compression.
compress-type=zst
compress-level=6
log-level-console=info
log-level-file=debug
Untuk pemulihan tepat waktu , Anda juga perlu mengonfigurasi PostgreSQL untuk mengunggah file WAL ke S3:
archive_mode = on
archive_command = 'pgbackrest --stanza=demo archive-push %p'
archive_timeout = 300
Cadangan penuh
Cadangan penuh menyalin semua file dalam cluster database.
sudo -u postgres pgbackrest --type=full --stanza=demo backup
Cadangan diferensial
Pencadangan diferensial hanya menyalin file yang telah diubah sejak pencadangan penuh terakhir. Ini lebih kecil dari cadangan penuh, tetapi untuk memulihkannya Anda memerlukan cadangan penuh dasar.
sudo -u postgres pgbackrest --type=diff --stanza=demo backup
Cadangan tambahan
Pencadangan tambahan hanya menyalin file yang telah berubah sejak pencadangan terakhir (penuh, diferensial, atau tambahan). Ini lebih kecil dari cadangan penuh atau diferensial, tetapi untuk memulihkannya Anda memerlukan semua cadangan dependen.
sudo -u postgres pgbackrest --type=incr --stanza=demo backup
Pemulihan cadangan
Untuk memulihkan klaster dari cadangan terakhir:
sudo -u postgres pgbackrest --stanza=demo --delta restore
Untuk melihat semua cadangan yang tersedia:
sudo -u postgres pgbackrest --stanza=demo info
Pemantauan PostgreSQL
Untuk memantau PostgreSQL , Anda dapat menggunakan OpenTelemetry PostgreSQL penerima yang dilengkapi dengan OpenTelemetry Collector.
Kolektor OpenTelemetri dirancang untuk mengumpulkan, memproses, dan mengekspor data telemetri dari berbagai sumber. Ini bertindak sebagai saluran data terpusat dan fleksibel yang menyederhanakan pengelolaan data telemetri dalam sistem terdistribusi.
Uptrace adalah backend OpenTelemetri yang mendukung pelacakan, metrik, dan log terdistribusi. Anda dapat menggunakannya untuk memantau aplikasi dan memecahkan masalah.
Uptrace hadir dengan pembuat kueri yang intuitif, dasbor yang kaya, aturan peringatan dengan pemberitahuan, dan integrasi untuk sebagian besar bahasa dan kerangka kerja.
Uptrace dapat memproses miliaran rentang dan metrik pada satu server dan memungkinkan Anda memantau aplikasi Anda dengan biaya 10x lebih rendah.
Hanya dalam beberapa menit, Anda dapat mencoba Uptrace dengan mengunjungi demo cloud (tidak perlu login) atau menjalankannya secara lokal dengan Docker . Kode sumber tersedia di GitHub .
Kesimpulan
pgBackRest adalah alat pencadangan andal yang memerlukan konfigurasi minimum. Untuk mencapai keseimbangan yang baik antara ukuran cadangan dan waktu pemulihan, Anda dapat membuat cadangan penuh setiap minggu dan cadangan diferensial/inkremental setiap hari.
Tidak ada komentar:
Posting Komentar