Pgbackrest Differential Backup üzerinden PITR

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