Selamlar arkadaşlar bu makalemde sizlere PostGreSQL üzerinde nasıl Backup ve Restore işlemi yapılır bunu anlatacağım. Bu işlemi yaparken ise PGBackRest den yardım alıyor olacağız.
İşlem sırasında gerekli olan ihtiyaçlarınız bir adet Ubuntu üzerine kurulmuş PostGreSQL 13’dür. Ben örneğimi 13 üzerinden yapacağım.
PSQL 13 kurulumu için buraya tıklayabilirsiniz.
PGBackRest için Gerekli adımlar :
– Kurulum : Bu komutları Root olarak çalıştırmalısınız.
> apt install -y pgbackrest
– PGBackRest için PostGreSQL Archive Ayarları : Bu ayarları ise /etc/postgresql/13/main/postgresql.conf dosyası içerisinde yapacaksınız. Backup dosyalarınızı tutacağınız klasörünüzü oluşturmalısınız.
> mkdir -p /mnt/pgbackrest/
Bir dosya oluşturdum. Daha sonra ise postgresql.conf dosyasında
> archive_mode = on
> archive_command = 'pgbackrest --stanza=main archive-push %p'
Ayarlarını yaptığınızda yukarıdaki gibi görünecektir.
– PGBackRest ayarlamaları : Bu ayarları yapmanız için /etc/pgbackrest.conf dosyasına gitmeli ve içerisini tamamen silerek aşağıdaki kodu eklemelisiniz.
[global]
repo1-path=/mnt/pgbackrest/
repo1-retention-full=3 // Tutulacak Max Backup Sayısı.
repo1-cipher-type=aes-256-cbc // Şifreleme algoritması
repo1-cipher-pass=PasswordBilgisi // Backuplarınız için Password oluşturduğunuz alan
repo1-retention-full-type=count
process-max=2
log-level-console=info
log-level-file=debug
compress-level=3 // Compress yapılarak sıkıştırmasını sağlayan komut.
[main]
db-path=/var/lib/postgresql/13/main
Ayarlamalarınızı yaptığınız da dosyamız yukarıdaki gibi görünecektir.
– Dosyamızın izinlerini ayarlıyoruz :
> chown -R postgres:postgres /mnt/pgbackrest && chmod -R 700 /mnt/pgbackrest
– Son olarak ayarların uygulanabilmesi için PostGreSQL’e Restart atıyoruz :
> systemctl restart postgresql
– PGBackRest ile Backup oluşturma işlemleri :
Bu işlemleri yaparken kullanıcımızın postgres olması gerekiyor. Aşağıdaki kod ile kullanıcı değiştiriyoruz.
> su - postgres
Daha sonra Backup almamıza yarayacak olan Stanza-Create komutumuzu çalıştırıyoruz.
> pgbackrest --stanza=main stanza-create
Completed successfully yazısını görmeniz durumunda başarılı şekilde oluşturulmuş olacaktır.
> pgbackrest --stanza=main info
Komutu yardımıyla ise oluşturulan Stanza hakkında bilgi alabiliyoruz.
Şimdi ise aşağıdaki komutlar ile Full ve Incr backupları alacağız.
> pgbackrest --stanza=main --type=full backup
Komutu yardımıyla Full Backup alabiliyorsunuz.
> pgbackrest --stanza=main --type=incr backup
Komutu yardımıyla INCR backup alabiliyorsunuz.
> pgbackrest --stanza=main info
Komutunu tekrar çalıştırdığımız da backuplarımızın alındığını göreceksiniz.
– EK Komutlar :
Stanza silme işlemi yapacaksanız eğer ilk olarak o Stanzayı durdurmalısınız.
> pgbackrest --stanza=main stop
Durdurduktan sonra
> pgbackrest --stanza=main stanza-delete
Komutu ile silmeli ve sonrasında;
> pgbackrest --stanza=main start
Komutu ile tekrar çalıştırmanız gerekmektedir.
– Restore işlemleri :
Restore senaryomuzda ise ilk olarak PostGreSQL’imizi bozuyoruz. J Bunun için dosyalarını siliyoruz ve durduruyoruz. Bu işlemleri Root kullanıcımızla yapıyoruz.
> rm -r /var/lib/postgresql/13/main
> systemctl stop postgresql
Daha sonra dosyalarımızı atacağımız yeri oluşturuyor ve izinlerini veriyoruz.
> mkdir /var/lib/postgresql/13/main
> chown postgres:postgres /var/lib/postgresql/13/main
> chmod 700 /var/lib/postgresql/13/main
Daha sonra Postgres kullanıcısına geçiş yaparak Restore komutumuzu çalıştırıyoruz.
> su - postgres
> pgbackrest --stanza=main restore
Restore komutumuzu çalıştırıyoruz ve Completed Successfully yazısını gördüğümüzde başarılı bir şekilde tamamlandığını anlıyoruz. Sonrasında ise Root kullanıcısına geçiyoruz ve PostGreSQL’i çalıştırıyoruz. Burada Hostname’in değiştiğini fark edeceksiniz ama bunun konuyla alakası yok kullandığım Ubuntu Desktop çöktü ve bende yeni Ubuntu Server kurarak tekrar bu kısma geldim. 🙂 küçük bir aksilik sadece. 🙂
Daha sonra tail /var/log/postgresql/postgresql-13-main.log komutu ile loglarımı kontrol ediyorum ve sorunsuz işlemin bittiğini buradan da görebiliyorum. Daha sonra tabiki psql ile DB’min içerisine giriyorum. İşlemlerimiz bu kadar arkadaşlar.
PGBackRest yararlı kodlar :
> pgbackrest --stanza=main --delta --set=20220307-122315F --type=time --target="2022-03-07 12:30:17" restore
// Komutu yardımıyla –set=20220307-122315F kısmına info’dan aldığımız Full Backup adını yazıyoruz. –target=”2022-03-07 12:30:17″ ise istediğimiz geri dönüş tarihini yazarak belirlediğimiz tarihe geri dönüş sağlayabiliyoruz.
> sudo -u postgres pgbackrest --stanza=main --compress-level=6 --type=full backup
// Komutumuz ile ise –compress-level=6 diyerek Backup işlemi sırasında Compress işlemi yaptırabiliyoruz.
Bu yazımda bu kadar arkadaşlar deneyimleyerek elde ettiğim ve öğrendiğim bütün bilgileri siz okurlarımla paylaşmak istedim. Umarım yararlı bir yaz olur. Yanlışlarım, eksiklerim, eklemek istedikleriniz ya da yorumlarınız varsa lütfen yorumlar kısmından bana iletin ki doğru bilgiler için güncellemeler yapabileyim.
Herkese kolaylıklar dilerim arkadaşlar.
Hocam iyi günler windows ‘a PgBackRest kurulumu yapabiliyor muyuz? sanal makine kullanmak veya işletim sistemini değiştirmemiz mi gerekiyor?
Selamlar Hocam, Ben Postgresql kurulumları yaparken Windows cihazlarında kurulum yapmadım hiç bundan dolayı pek emin değilim. Ufak bir googlelama yapıp baktığımda ise görmedim kurulumun olup olmadığını. Yanlış yönlendirmek istemem araştırmak gerekir. Sağlıklı olan bence Linux sisteminde koşturulması. Kolaylıklar dilerim.
Selamlar Tekrardan. https://pgbackrest.org/user-guide-index.html sayfasından guide’ları kontrol ettiğimde olmadığını anladım ama muhtemelen yok. Bilgilerine.