Veri bozulması kurtarma
Veri bozulmasında (blok/sayfa checksum hatası, okunamayan tablo, bozuk RDB/AOF) önce bozulmanın kapsamını doğrulayıp; blok düzeyi kurtarma, yedekten tam restore/PITR ve son çare onarım araçları arasında doğru kararı vermeni sağlayan adım adım karar ağacı.
Bozulmanın kapsamı ne?
Önce bütünlük kontrolü yaparak bozulmanın ne kadar yayıldığını tespit et. Sadece birkaç blok/sayfa mı bozuk, tek bir nesne (tablo/index) mi etkilenmiş, yoksa bozulma yaygın mı? Aşağıdaki komutlarla tarama yapıp kapsamı belirle, sonra uygun dalı seç.
RMAN> BACKUP VALIDATE CHECK LOGICAL DATABASE; -- ardından: SELECT file#, block#, blocks, corruption_type FROM v$database_block_corruption;- Sadece birkaç blok / sayfa bozuk
- Tek bir nesne (tablo/index) etkilenmiş
- Bozulma yaygın / birçok nesne
- Kontrol araçları çalışmıyor, DB açılmıyor
- Bozulma tekrar ediyor (kök neden şüphesi)
Kök neden: sınırlı blok/sayfa bozulması → hedefli kurtarma
Yalnızca birkaç blok/sayfa bozuksa tüm veritabanını restore etmeye gerek yoktur. Motorun blok/sayfa düzeyi kurtarma özelliğiyle sadece bozuk kısımları yedekten/log'dan onararak veri kaybını en aza indir.
Kök neden: nesne/yaygın bozulma → yedekten tam restore veya PITR
Bozulma bir veya birçok nesneye yayıldıysa en güvenli yol, sağlam bir yedekten geri yükleyip mümkünse bozulma anına kadar ileri sarmaktır (PITR). Böylece onarım araçlarının neden olacağı veri kaybından kaçınırsın.
Yedek yok / DB açılmıyor — son çareye mi geçiyorsun?
Onarım araçları (REPAIR_ALLOW_DATA_LOSS, innodb_force_recovery, --fix) VERİ KAYBETTİREBİLİR ve bütünlük constraint'lerini bozabilir. Bunlar yalnızca kullanılabilir bir yedek olmadığında ve veritabanı açılamadığında son çaredir. Önce kullanılabilir bir yedeğin gerçekten olmadığından emin ol.
- Sağlam bir yedek buldum, restore edeyim
- Hiç yedek yok, onarım aracı tek seçenek
Son çare: veri kaybı riskli onarım araçları
Bu araçlar veritabanını açılabilir hâle getirmek için bozuk satırları/sayfaları atar. Yalnızca yedek yoksa ve önce mevcut dosyaların bir kopyasını aldıysan uygula. Amaç: veriyi dışa aktarabilecek kadar açmak, sonra temiz bir kopyaya taşımak.
Kök neden: donanım/altyapı → kaynağı düzelt ve checksum aç
Bozulma tekrar ediyorsa asıl neden büyük olasılıkla disk, denetleyici (controller), bellek (RAM) veya kararsız depolama katmanıdır. Sadece veriyi kurtarmak yetmez; kaynağı gidermezsen bozulma geri gelir. Ayrıca erken tespit için checksum/bütünlük doğrulamasını aç.