PostgreSQL veritabanlarında veri güvenliği ve sürekliliği kritik bir öneme sahiptir. Bu noktada pgBackRest, açık kaynaklı bir yedekleme ve kurtarma çözümü olarak öne çıkmaktadır. Geleneksel yedekleme araçlarının aksine, pgBackRest performans, güvenilirlik ve esneklik konularında PostgreSQL yöneticilerine benzersiz avantajlar sağlar.
pgBackRest, veritabanı yedeklemelerinde tam (full) ve artımlı (incremental) yedekleme seçenekleri sunarak veri yönetimini kolaylaştırır. Tam yedekleme tüm veritabanı içeriğini kapsarken, artımlı yedekleme yalnızca son yedeklemeden bu yana değişen verileri kaydeder. Bu yaklaşım, hem depolama alanından tasarruf sağlar hem de yedekleme süresini önemli ölçüde kısaltır.
pgBackRest’in kullanımı basit yapılandırma dosyaları ve net komutlarla oldukça pratiktir.
Ubuntu/debian sistemlere aşağıdaki gibi dahil edilebilir.
apt install pgbackrest
BashArdından aşağıdaki /etc/pgbackrest.conf
dosyasında gerekli yapılandırmalar yapılır.
[global]
# Performans ve İşlem Ayarları
process-max=2 # Paralel işlem sayısı
start-fast=y # Hızlı başlangıç
stop-auto=y # Otomatik durdurma
log-path=/mnt/pgbackrest/log # Log dosyası konumu
log-level-file=warn # Dosya log seviyesi
log-level-console=detail # Konsol log seviyesi
backup-standby=n # Standby sunucudan yedekleme
resume=n # Yarım kalan yedeklemeleri devam ettirme
exclude=log/ # Dışarıda bırakılacak dizinler
archive-async=y # Asenkron arşivleme
archive-timeout=360 # Arşivleme zaman aşımı
# S3 Bulut Deposu Yapılandırması
repo1-type=s3
repo1-s3-bucket=<BUCKET_ADI>
repo1-path=<KLASÖR>
repo1-s3-endpoint=s3.amazonaws.com
repo1-s3-region=eu-west-1
repo1-s3-key=<ANAHTAR>
repo1-s3-key-secret=<GİZLİ_ANAHTAR>
repo1-retention-full=2 # Full yedek sayısı
repo1-retention-diff=1 # Diferansiyel yedek sayısı
# Yerel Yedek Deposu
repo2-path=/backup/pgbackrest/repo
repo2-retention-full=2
repo2-retention-diff=1
# Şifreleme Ayarları
repo1-cipher-type=aes-256-cbc
repo1-cipher-pass=<ŞİFRE>
repo2-cipher-type=aes-256-cbc
repo2-cipher-pass=<ŞİFRE>
# PostgreSQL Stanza Tanımı
[pg16_pg]
pg1-path=/mnt/data/16/main # Veritabanı veri dizini
pg1-port=5432 # PostgreSQL portu
PlaintextYapılandırmayı kayıt ettikten hemen sonra tabii ki bu yapılandırmayı PostgreSQL için geçerli kılmalıyız ki WAL kayıtlarınıda alalım,
-- Arşivleme modunu etkinleştirin
ALTER SYSTEM SET archive_mode = on;
ALTER SYSTEM SET archive_command = 'pgbackrest --stanza=pg16_pg archive-push %p';
-- Yapılandırmayı yeniden yükleyin
SELECT pg_reload_conf();
SQLArdından WAL arşivlerini almaya pg başlayacak bu noktada hızlı olmak lazım çünkü çok WAL birikmemesi gerekiyor.
pgbackrest --stanza=pg16_pg stanza-create && pgbackrest --stanza=pg16_pg check --log-level-console=info
Bashİlk sefer full yedek alalım
pgbackrest --stanza=pg16_pg --log-level-console=info --type=full backup
BashArtımlı yedek almak için
pgbackrest --stanza=pg16_pg --log-level-console=info --type=incr backup
Bash