Yedek ve Geri Dönüş — WHERE'siz Bir DELETE Kaç Saatlik Veriyi Götürür?
Önce şunu oku: Replikasyon ve Okuma Replikaları — Yazdım Ama Göremiyorum
30 saniyede özet
Gece alınan yedek, öğlen yapılan bir hatada yarım günlük veriyi kaybettirir. Replika hatayı da kopyalar. Sürekli arşivlenen WAL ile veritabanı hatadan hemen önceki ana döner; ama yalnızca geri dönüş daha önce denendiyse.
Bir günlüğün her gece fotokopisini çekiyorsun. Öğlen bir sayfayı yanlışlıkla silersen, sabahtan beri yazdıkların gider. Yazdığın her satırı anında kopyalayan bir arkadaşın varsa, silmeyi de kopyalar.
-
Bayt: Saat 14:30'da biri havale tablosunda bir satırı silmek istedi. WHERE yazmayı unuttu.
-
Sen: Bütün tablo silindi! Neyse ki yedek sunucumuz var.
-
Bayt: Yedek sunucu silmeyi bir saniyede kopyalamış, orada da tablo boş! Gece yedeği de 02:00'den.
-
Bayt: Hatadan bir dakika öncesine dönebilmemiz gerekiyordu.
Ne kadar veri, ne kadar süre?
RPO ve RTORPO, bir felakette en fazla ne kadar süreye ait verinin kaybolabileceğidir; RTO, sistemin ne kadar sürede yeniden çalışacağıdır.Sözlükte gör → bir felakette en fazla ne kadar süreye ait verinin kaybolabileceğini söyler. RTO ise sistemin ne kadar sürede yeniden çalışacağını.
Her gece 02:00’de alınan bir yedekle, 14:30’daki bir hatadan dönersen sabahtan beri yapılan bütün havaleler gider. Gece yedeğinde RPO bir güne kadar çıkabilir.
Kafam karıştı, daha basit anlat
RPO: ne kadar veri kaybolur. RTO: ne kadar sürede dönülür. Gece yedeği yarım günü kaybettirebilir.
RPO neyi anlatır?
RTO neyi anlatır?
Kopya, yedek değildir
Birincil veritabanının her değişikliği bir saniye içinde bir replikaya kopyalanıyor. WHERE'siz bir DELETE çalıştı. Replikadaki tablo ne durumda? Cevabı göster
O da boş. Replika, silmeyi de bir saniye içinde kopyaladı. Bir sunucu çöktüğünde çok işe yarar, ama bir insanın yaptığı hatadan kurtarmaz.
Adım adım oku
- Gece fotokopisi: yarım gün kaybolur.
- Anında kopyalayan, hatayı da kopyalar.
- Her sayfa sırayla saklanıyor.
- Hatadan bir dakika önceki sayfayı aç.
Veritabanı her değişikliği önce bir günlüğe, WALVeritabanının her değişikliği tabloya yazmadan önce sırayla kaydettiği günlük. Çökmeden sonra toparlanmak, replika ve anına dönüş için kullanılır.Sözlükte gör →’a yazar. Bu dosyalar sürekli arşivlenirse, bir temel yedeğin üstüne istenen ana kadar yeniden oynatılabilir.
Buna anına dönüşTemel bir yedeğin üstüne arşivlenmiş değişiklik kayıtlarını oynatarak veritabanını belirli bir ana geri getirmek.Sözlükte gör → denir: veritabanı 14:29:59’a döner, yalnızca hatalı komut geri alınır. Ama bunu ilk kez felaket günü denersen, arşivde eksik dosya olduğunu da o gün öğrenirsin.
Kafam karıştı, daha basit anlat
Değişiklik kayıtlarını sakla, istediğin ana dön. Ve dönüşü önceden dene.
Her gece 02:00'de alınan bir yedekle öğlen 14:30'daki bir hatadan dönülürse ne olur?
WAL arşivleme ile anına dönüş (PITR) nasıl çalışır?
Kendin gör
WHERE’siz bir DELETE
Tohum 455266- ✕ 14:30 WHERE’siz DELETE
- ⚠ 14:40 fark edildi
- · geri yükleme bekleniyor
Şu an ne oldu?
Her gece 02:00’de tam yedek
14:30’da biri WHERE yazmadan silme komutu çalıştırıyor.
Görevler0/3
Yarım günlük havale kaybolsunaçık
İpucu
Gece yedeği.
Yedek sunucu da aynı hatayı kopyalasınaçık
İpucu
Replika.
Hatadan bir saniye öncesine dönaçık
İpucu
WAL arşivi ve denenmiş bir dönüş.
Olay günlüğü (0)
Henüz olay yok. Oynat veya adımla.
- Varsayılanla oynat. Gece yedeği: 02:00’ye dönüldü, on iki buçuk saatlik havale kayboldu.
- “Replika” seç. Replika silmeyi de kopyaladı; geri dönülecek bir şey yok.
- “Anına dönüş” seç. 14:29:59’a dönüldü; hiçbir havale kaybolmadı.
- “Düzenli deneniyor”u kapat. Aynı yedek, ilk denendiği gün açılamadı.
Anlık kopyalayan bir replika, WHERE'siz bir DELETE'ten neden kurtarmaz?
Yedekler düzenli alınıyor ama kimse geri yüklemeyi denememiş. Risk nedir?
Tuzaklar
Yedeği aynı yerde tutmak. Ana veritabanıyla aynı bölgede ya da aynı hesapta duran yedek, o bölge arızasında ya da hesap ele geçirildiğinde onunla birlikte gider. Yedeği ayrı bir yerde sakla.
Bütün veritabanını geri sarmak. Anına dönüş, hatadan sonraki doğru işlemleri de geri alır. Geri yüklenen kopyayı ayrı aç ve yalnızca silinen satırları canlıya taşı.
Önlemi unutmak. Canlıda elle değişikliği kısıtla; değişiklikleri incelenmiş betiklerle ve önce bir işlem içinde dene. En ucuz kurtarma, hiç yaşanmayan felakettir.
Kafam karıştı, daha basit anlat
Yedeği ayrı tut, cerrahi dön, elle değişikliği kısıtla.
Yedekler neden ana veritabanından farklı bir yerde (başka bölge ya da hesap) saklanır?
Derinleş · Havale veritabanı: WAL arşivleme, anına dönüş ve aylık deneme 4 dosya · ~31 satır · ilk okumada atlayabilirsin
Kendini sına
Anlık kopyalayan bir replika, yanlışlıkla silinen bir tabloyu kurtarır.
Bir bankada RPO sıfıra yakın, RTO dakikalar isteniyor. Hangi birleşim uygundur?
Aklında kalacak üç şey
- 1 RPO ne kadar veri kaybedilebileceğini, RTO ne kadar sürede geri dönüleceğini söyler. Gece yedeğinde RPO bir güne kadar çıkar.
- 2 Replika sunucu arızasına karşıdır, insan hatasına değil: hatalı bir silmeyi de aynı hızla kopyalar.
- 3 Temel yedek ve sürekli arşivlenen WAL, veritabanını hatadan hemen önceki ana döndürür. Denenmemiş bir yedek ise bir umuttur.
4 kart sonraki derste seni bekliyor