Pgbackrest Differential Backup üzerinden PITR
Aşağıdaki komut ile diff backup alınır.
sudo -u postgres pgbackrest --stanza=12_main --type=diff backup
Aşağıdaki komutu root kullanıcısı ile çalıştırılır. Yapılan işlem bir tablo oluşturmak ve içerisine veri atmaktır.
sudo -u postgres psql -c "begin; create table important_table (message text); insert into important_table values ('Important Data'); commit; select * from important_table;"
çıktısı
message
----------------
Important Data
(1 row)
Zaman bilgisi alınır.
sudo -u postgres psql -Atc "select current_timestamp"
çıktısı
2019-12-10 11:09:52.660643+03
Sonrasında create edilen tablo silinir.
sudo -u postgres psql -c "begin; drop table important_table; commit; select * from important_table;"
Veri tabanını kapatalım.
systemctl stop postgresql-12.service
Aşağıdaki komut ile yukarıda alınan zamana veri tabanı geri restor edilir.
sudo -u postgres pgbackrest --stanza=12_main --delta --type=time "--target=2019-12-10 11:09:52.660643+03" --target-action=promote restore
Veri tabanını açıyoruz sonrasında tablomuzun tekrar geri geldiğini görebiliriz.
systemctl start postgresql-12.service
[root@postgres eng]# sudo -u postgres psql -c "select * from important_table"
message
----------------
Important Data
(1 row)
Yazar: Engin YILMAZ