SQL Server'da bozuk data kurtarma (Mikro için)



SQL bozuk bilgileri kurtarmaİlk başta bunun son çare olduğunu, mutlaka yedekli çalışmanızı, olabilecek herhangi bir tür kayıptan tarafımızın sorumlu tutulamayacağını belirteyim.
Bildiğiniz üzere SQL veri tabanları büyük dosyalar ve temiz bir kapanış (clean/proper shutdown) önemli. Yani detach etmeden taşımaya çalışmak, enerji kesintisi vs. ileride dert çıkarabiliyor. SQL server'da kısaca "Ben bu veritrabanına bağlanamıyorum" mesajı veriyor, yorum bize kalıyor.
1. Bu durumdaki datayı, başka bir yere taşıyın. (Hem yedek olsun, hem ileride kullanacağız)
2. Aynı isimle bir firma kurun. Elimizde boş ve sağlam bir veritabanı ve log oldu.
4. SQL server'ı durdurun.
3. Eski (bozuk) dosyaları, yeni oluşturduklarımızın üzerine kopyalayın.
4. SQL server'ı çalıştırın.
5. Enterprise Manager'a girin, ilgilendiğimiz veritabanının "Suspect" konumunda olduğunu göreceksiniz.
6. Ent. Manager'dan, SQL sunucumuzun adı üzerinde sağ klik yapıp "Properties" menüsüne tıklayın. Gelen pencerede "Server settings" sekmesini seçip, "Allow modifications to be made directly to the system catalogs" parametresini işaretleyip OK tuşuna basın.
7. Databases / Master / Tables / sysdatabases tablosunu açıp (Open table, Return all rows), ilgilendiğimiz veritabanının "Status" alanına 32768 yazın.
8. SQL server'ı durdurup yeniden başlatın. Ent. Manager'da Databases kısmında F5 ile güncellerseniz, ilgilendiğimiz veritabanının "Emergency mode" olarak gözüktüğünü göreceksiniz.
9. Kur'a girip farklı bir isimle yeni bir firma açın.
10. Ent. Manager'a girip, bu yeni firma içindeki tüm tabloları silin (Sistem tabloları silinemiyor diye mesaj alacaksınız, önemli değil).
11. (İşletim sistemim ingilizce, siz Türkçe olanını tahmin edeceksiniz :)) Start / Programs / Microsoft SQL server / Import And Export Data menüsünü çalıştırın.
12. Kaynak olarak emercencu mode olan veri tabanını, hedef olarak da son açtığımız yeni veri tabanını seçin.
13. Yalnızca tabloları (view'leri değil) kopyalayın.
14. Kur'a son açtığımız firmayı seçerek girin, Size "Sube tablosunda 2. indeks tanımsız" diyecektir, önemli değil.
15. Çok firma seçimli tablo.... menüsünden, aktif firmayı seçip Devam deyin.
16. Şimdiye dek sorun çıkmadı ise, güle güle kullanın.