DBAtlas · Veritabanı operasyon atlası

pgBackRest ile belirli bir zamana geri dön (PITR, --type=time)

PostgreSQLYedekleme & PITR

Komut

sudo systemctl stop postgresql-16
sudo -u postgres pgbackrest --stanza=<stanza> --delta --type=time "--target=2026-10-08 14:30:00+03" --target-action=pause restore
sudo systemctl start postgresql-16
# Recovery hedefte durur (salt okunur); veriyi doğrula:
psql -X -c "SELECT pg_is_in_recovery(), pg_last_xact_replay_timestamp();"
# Doğruysa recovery'yi bitir ve yeni timeline ile yazılabilir aç:
psql -X -c "SELECT pg_wal_replay_resume();"

Ne yapar?

Hedef zamandan önce biten bir yedeği geri yükler ve WAL'ı yalnızca hedef zamana kadar uygular; target-action=pause ile hedefte durup veriyi doğrulamana izin verir, pg_wal_replay_resume() ile promote olur.

Ne zaman kullanılır?

Yanlışlıkla yapılan DELETE/DROP/UPDATE gibi mantıksal hatalardan hemen önceki ana dönmek için.

Dikkat

Hedeften sonraki tüm değişiklikler bu kümede kaybolur; mümkünse PITR'ı ayrı bir sunucuya yapıp yalnızca etkilenen veriyi pg_dump ile geri taşı. Saat dilimini hedefte açıkça belirt. pgBackRest 2.24+ hedef zamandan önceki uygun yedeği kendisi seçer; daha eski sürümlerde --set ile hedeften önce biten yedeği belirt. Hedef yedeğin bitiş zamanından önceyse restore tutarlılığa ulaşamaz.

DBAtlas'ta aç →

İlgili