Senin, 15 Juli 2024

POSTGRES-pgback dan s3

 

pgBackRest: pencadangan PostgreSQL S3

Tutorial ini menjelaskan cara mem-backup database PostgreSQL menggunakan pgBackRest Buka di jendela barudan 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:

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 Buka di jendela baru, 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 Buka di jendela baru, Anda dapat menggunakan OpenTelemetry PostgreSQL Buka di jendela barupenerima yang dilengkapi dengan OpenTelemetry Collector.

Kolektor OpenTelemetri Buka di jendela barudirancang 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 Buka di jendela baruyang mendukung pelacakan, metrik, dan log terdistribusi. Anda dapat menggunakannya untuk memantau aplikasi dan memecahkan masalah.

Ikhtisar Uptrace

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 Buka di jendela baru(tidak perlu login) atau menjalankannya secara lokal dengan Docker Buka di jendela baru. Kode sumber tersedia di GitHub Buka di jendela baru.

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