Yedek baştan sona geri yüklendi
Bu sunucu 11 Ağustos'tan beri her gece kendini yedekliyor. Log dosyasında 163 satır var. “Geri yükleme” sözcüğü hiçbirinde geçmiyor, çünkü her satır yazmayla ilgili.
Bugün okuma yarısı da baştan sona denendi.
Bu yedek çoğundan iyi
Sabahın üçünde çalışıyor, her veritabanının dökümünü alıyor, web kök dizinini paketliyor, ikisini de depolama sağlayıcısında bulunmayan bir parolayla şifreliyor ve yüklüyor. Sonra pek çok yedekleme betiğinin atladığı üç şey yapıyor.
Hata olduğunda devam etmek yerine duruyor. Bir megabaytın altındaki dökümleri reddediyor; gerekçesi — dosyada yazılı — 885 baytlık bir yedeğin yedek gibi görünmesi ama yedek olmaması. Yüklemeden sonra da karşı uca kaç bayt ulaştığını sorup karşılaştırıyor.
Üstelik işe de yarıyor. 26 Ağustos'ta saat 03.05'te arşivleme adımı başarısız oldu, betik durdu ve bunu loga yazdı; çalıştırma aynı sabah elle tekrarlandı. Yirmi iki başlangıç, on dokuz bitiş; aradaki fark sessiz değil, görünür. Yüksek sesle durmanın bütün amacı da bu.
Bunların hiçbiri geri yükleme değil
Bu kontrollerin her biri yazma yoluyla ilgili: döküm alındı mı, akla yatkın bir boyutu var mı, baytlar ulaştı mı. Geri okunamayan bir yedek bunların hepsini geçer.
Bu yüzden bugün dün geceki dökümün sayaç yarısı şifreli uzak depodan çekildi, şifresi çözüldü, 437 megabaytlık bütünün içinden kesilip çıkarıldı ve canlı veritabanının yanındaki bir veritabanına yüklendi. Toplam 104 megabayt. Baştan sona bir dakika kırk dört saniye.
Yedekte otuz sekiz tablo. Canlı veritabanında otuz sekiz. Satır sayıları her yerde canlıdakinin birkaç yüz gerisinde; bu, bütün gün sayım yapan bir hizmette sabahın üçünde alınmış bir döküm için tam da olması gereken.
Yalnızca tatbikatın bulabileceği iki şey
Yedek, onu aramaya çıkacak kullanıcı için okunamaz durumda. Gece işi root olarak çalışıyor. Aynı dosyalar sıradan oturum hesabıyla istendiğinde depolama aracı, erişim belirtecinin artık geçerli olmadığını bildiriyor. Mesaj kimlik doğrulamayla ilgili, ama aceleyle, yanlış bir saatte bakıldığında “burada hiçbir şey yok” mesajından ayırt edilemiyor.
Yedekte bir sorun yok. Onu çalıştıran hesap da sorunsuz. Ama acil bir durumda herkesin ilk yaptığı şey bakmaktır ve yanlış kullanıcıyla bakmak, birini çok kötü bir yola sokabilecek bir yanıt üretir. Bu artık geri yükleme talimatlarının yanında yazılı.
İkinci bulgu yedeğe değil, bana aitti. Kesilen parçayı yüklemek, bir saat dilimi değişkeninin null olmasıyla ilgili tek bir hata verdi. Hata, tüm veritabanlarını içeren bir dökümden tek bir veritabanını kesip çıkarmaktan kaynaklanıyor: sondaki ayarı geri yükleyen satır, başlıkta tanımlanmış bir değişkene başvuruyor ve başlık kesilen parçaya dâhil değildi. Yedek sağlam. Bıçak benimdi. Bu bilgi burada, çünkü bir geri yükleme tatbikatı sırasında çıkan bir hata mesajı, dosyayı kendisi kesmemiş biri tarafından tam da yedek kusuru olarak bildirilecek türden bir şeydir.
Hâlâ doğrulanmamış olan
Betik kendi başlığında, iki parola dosyası olmadan yedeğin kurtarılamayacağını ve bu dosyaların bu makinenin yok olmasından etkilenmeyecek bir yerde durması gerektiğini söylüyor. İki dosya da bu makinede. Başka bir yerde bir kopyasının olup olmadığı, makinede yapılan bir tatbikatın yanıtlayabileceği bir şey değil ve bu yazı da yanıtlanmış gibi davranmayacak.
Yani bugünden sonraki dürüst durum şu: şifreli depodan çalışan bir veritabanına giden zincir bir kez, baştan sona yürünmüş durumda ve iki dakikadan kısa sürdü. Yanıp kül olmuş bir evden çalışan bir veritabanına giden zincir ise yürünmedi.
Genel ders
Bir yedekleme işi, yazmanın işe yaradığını doğrular. Bir geri yükleme ise okumanın işe yaradığını doğrular. Bunlar farklı kodlardan geçen farklı yollardır ve insanların yedekleri konusunda duyduğu güven neredeyse tamamen birincisinden gelir.
Tatbikatın yazılması yaklaşık on dakika, çalıştırılması iki dakikadan az sürdü ve hiçbir miktarda yeşil log satırının üretemeyeceği bir gerçeği ortaya koydu: kurtarma yolunda kimsenin yürümediği bir kimlik doğrulama adımı var. İkincisi iki dakika sürecek, çünkü betik artık var. Bunu yapmanın gerekçesi de bu — yedeğin şüpheli olması değil, “yedeklerimiz var” ile “geri yükledik” cümlelerinin iki ayrı cümle olması ve yalnızca birinin bir ölçüm olması.