Merhabalar bugün sizlere PostgreSQL’de 17 versiyonuyla beraber hayatımıza giren pg_basebackup incremantal backup’dan ve nasıl restore edileceğinden bahsedeceğim.
Incremantal backup özelliğinin kullanılması için summarize_wal özelliğinin açık olması gerekiyor bu özellik wal dosyalarının özetini oluşturan arka planda çalışan bir proccess ayağa kaldırır.
pgctl’i reload ettikten sonra yaptığımız config değişikliği geçerli olduğu için ilk full pgbasebackup yedeğimizi alabiliriz.
pg_basebackup -D "/var/lib/pgsql/backup/fullbck" -p 5432 -U postgres
şimdi veritabanına biraz veri girelim.
Ardından da bir incremantal backup alalım.Backup komutunda incremental parametresine referans için full yedekteki backup_manifest dosyasının belirtilmesi gerekmektedir.
pg_basebackup --incremental="/var/lib/pgsql/backup/fullbck/backup_manifest" -D "/var/lib/pgsql/backup/incbckd1" -p 5432 -U postgres
Göründüğü gibi full yedekteki base dosyasının boyutuyla incremental’daki boyutu farklı
Full backup aldığımızda veritabanında herhangi bir veri yoktu, daha sonra 10000 satır insert ettik ve incremental backup aldık ona rağmen base dosyasının boyutu full yedekten daha az.
Şu anda elimizde 2 adet backup dosyası var , herhangi bir restore işleminde bunları nasıl kullanacağız? 17 versiyonuyla beraber gelen pg_combinebackup utility’yle.
Bu araç full backup ve incremental backuplardan yeni tam bir yedek oluşturulmasını sağlar.
output parametresiyle oluşturulacak yeni yedeğin lokasyonunu ve adını belirtiyoruz.
pg_combinebackup --output="/var/lib/pgsql/backup/full_inc" "/var/lib/pgsql/backup/fullbck/" "/var/lib/pgsql/backup/incbckd1/"
Yeni oluşturulan yedekte config dosyasına girip portu değiştirdikten sonra veritabanını ayağa kaldırdım.
pg_ctl start -D /var/lib/pgsql/backup/full_inc/
2. veritabanın ayakta olduğunu gösteren ekran görüntüsü.
Sizlere bu yazıda, PostgreSQL 17 ile beraber gelen incremental backup ve restore özelliğini anlatmaya çalıştım umarım faydalı olmuştur.
Перекладено з: PostgreSQL 17: Incremental Backup and Restore