Barman RSYNC backup
Barman RSYNC Backup yöntemi streaming backup yönteminden farklı olarak aşağıdaki özellikleri kullanabilmektedir.
İncremental Backup
Data deduplication
Network compression
Parallel Backup
Network bandwith limitleme
Barman RSYNC backup yöntemi ile yukarıdaki özelliklerden çoğu kullanılmaktadır. Streaming Backup yönteminden biraz daha karışık gözükse de fazla da karışık değildir. Bunu yazının ilerleyen zamanlarında beraber göreceğiz.
İlk olarak iki sunucu üzerinde firewalld ve selinux u disable ediyoruz ya da sadece belirli portlara izin verebilirsiniz.
İlk olarak ssh key oluşturup barman den postgresql e ,postgresql den barman a kopyalamak gerekiyor. Bu işlem için Ssh Key Oluşturma ve SSH key’i Farklı Makineye Kopyalayarak Bağlanmak isimli yazıma göz atabilirsiniz.
Ssh keylerimizi oluşturup birbirleri arasında şifresiz şekilde bağlantı sağlandığını test ettikten sonra bir sonraki adıma geçiyoruz.
Streming Backup da ki gibi kullanıcıları oluşturmamız gerekiyor.
CREATE USER barman WITH SUPERUSER;
Kullanıcımız oluşturulduktan sonra aşağıdaki gibi pg_hba.conf ‘u değiştiriyoruz.
vi /var/lib/pgsql/12/data/pg_hba.conf
local all barman trust
local replication barman trust
Postgresql.conf üzerinde aşağıdaki değişiklikleri yapalım.
vi /var/lib/pgsql/12/data/postgresql.conf
archive_mode= on
Archive_command= 'rsync -a %p barman@barman_ip :/var/lib/barman/12remote/incoming/%f '( Belirtilen /var/lib/barman/12remote/incoming/ dizini yerine archive'ı nereye almak istiyorsanız orayı yazabilirsiniz.)
Postgresql de yapılan değişikliklerin işlenebilmesi için aşağıdaki şekilde servisi restart ediyoruz.
systemctl restart postgresql-12.service
Postgresql de işlerimizi tamamladıktan sonra rsync yöntemi ile kullanacağımızdan dolayı aşağıdaki gibi ssh-server.conf-template konfigurasyon dosyamızı 12remote.conf şeklinde kopyalıyoruz.
cp /etc/barman.d/ssh-server.conf-template /etc/barman.d/12remote.conf
[12remote]
; Human readable description
description = "Example of PostgreSQL Database (via SSH)"
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; SSH options (mandatory)
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ssh_command = ssh postgres@postgresql_ip
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; PostgreSQL connection string (mandatory)
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
conninfo = host=postgresql_ip user=barman dbname=postgres port=5434
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Backup settings (via rsync over SSH)
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
backup_method = rsync
Yukarıdaki gibi değişiklikler yapıldıktan sonra kaydedip çıkıyoruz ve aşağıdaki komut yardımı ile yukarıda postgresql e verdiğimiz isimle işlemlerimiz olmuş mu kontrol edelim.
barman check 12remote
Komutu çalıştırdığınızda aşağıdaki gibi ekran gelmesi gerekiyor.
Konfigürasyonumuzda problem olmadığını gördükten sonra backupımızı alabiliriz.
barman backup 12remote --wait
Yukarıda görüldüğü gibi yedeğimiz alındı. Yukarıdaki resime dikkat edildiğinde 4 jobs’ı görmekteyiz. 4 jobs ,4 paralel anlamına gelmektedir. Paralel almak istiyorsanız oluşturduğumuz 12remote.conf dosyası içerisinde ki parametrelere bakabilirsiniz.
Alınan backupları aşağıdaki şekilde listeleyebilirsiniz.
barman list-backup 12remote
Backupları belirli zamanlarda almak için crontab a backup scriptlerinizi ekleyerek düzenli olarak almasını sağlayabilir ve işlem sonucunu kendinize mail olarak atabilirsiniz.
Linux mail yapılandırması ve mail atmak ile ilgili detaylar için aşağıdaki yazıma göz atabilirsiniz.
Relay Hakkı Olan Sunucu Konfigürasyonu ve Mail Atmak