2008-01-18

Suspect Moddaki SQL Server Veritabanını Kurtarma

Restore SQL Server 2005 Suspect Database

Birkaç gün önce suspect olmuş bir SQL Server 2005 veritabanını kurtarmak için epey uğraştım. Kurtarmaya çalıştığım veritabanı replikasyon için oluşturulan Distribution veritabanı idi. Ne veritananına erieşbiliyordum ne de üzerinde birazdan bahsettiğim komutları çalıştırabiliyordum. Data dosyası CRC hataları ile doluydu ve tüm uğraşlarım sonucu replikasyon ayarlarını uçurup yeniden yapmak zorunda kaldım:( Benzer durumlar ile karşılaşacak arkadaşlar aşağıdaki komutları denemeden veritabanınızı gözden çıkarmayın.

Suspect durumuna düşmüş bir SQL Server veritabanınızı; veri kayıplarını da gözönüne alarak aşağıdaki komutları ard arda çalıştırarak kurtarabilirsiniz:

EXEC SP_RESETSTATUS 'VeritabaniAdi';

ALTER DATABASE VeritabaniAdi SET EMERGENCY

DBCC CHECKDB(
'VeritabaniAdi')

ALTER DATABASE VeritabaniAdi SET SINGLE_USER WITH ROLLBACK IMMEDIATE

DBCC CHECKDB ('VeritabaniAdi', REPAIR_ALLOW_DATA_LOSS)

ALTER DATABASE VeritabaniAdi SET MULTI_USER

T-SQL Kod Kaynağı: CodeProject

46 yorum:

Adsız dedi ki...

allah razı olsun işe yarıyor çok sağol

Erkan ÇELİK

Mehmet GÜZEL dedi ki...

Cümlemizden; işe yaradığını görmek ne güzel.

Adsız dedi ki...

BESHIM
Ellerini ve aklına emeğine sağlık...

Mehmet GÜZEL dedi ki...

Rica ederim.

Adsız dedi ki...

Hatice
Teşekkürler, benim işime de yaradı...

Adsız dedi ki...

Hocam çok teşekkür ederim. Benimde işime yaradı.

Adsız dedi ki...

Peki bu komutları nereye gireceğiz? İlginiz için teşekkürler. Lütfen ayrıntılı yazın acemiyim.

Saygılarımla.
Şafak ÖZEN.

Mehmet GÜZEL dedi ki...

SQL Server Management Studio aracılığıyla Query(Ctrl+N) arayüzünü kullanabilirsiniz.

Adsız dedi ki...

Çok teşekkürler Mehmet Bey,
gerçekten çok teşekkürler..

Mehmet GÜZEL dedi ki...

Rica ederim.

Numan dedi ki...

Allah razı olsun yemin ediyorun direkten döndük yaneee ..:))) gidiyodu DB

Mehmet GÜZEL dedi ki...

Geçmiş olsun, cümlemizden.

AceleGelsin dedi ki...

Merhaba Hocam şu anda bir abinin işini yapıyorum. Vmware esxi kurdum. serverin acornis ile image aldım hersey ok server bakarken birde baktımki Databesi elimize aldık dedimki mahvolduk :(
database suspect olmuş hemen acil yardım sizin site Allah razı olsun
Database kurtuldu..
:)
www.keyfistan.com

Süleyman

Adsız dedi ki...

Hocam çok teşekkür ederim. çok işime yaradı sağolun.

www.kamsis.com

Mehmet GÜZEL dedi ki...

4 yıl önce paylaştığım bir T-SQL kodun hala zor durumda kalan insanların işine yaradığını görmek sevindirici. Rica ederim.

Adsız dedi ki...

Hocam elleriniz dert görmesin. Hakikâten kurtarıcım oldunuz. Çok teşekkürler...

Pegasus dedi ki...

Hakikaten Allah razı olsun. Çöken BES server'ımı sayenizde ayağa kaldırdım. Beni çok büyük bir dertten kurtardınız.
www.celiklerholding.com.tr
Metin Aykut

Mehmet GÜZEL dedi ki...

Yararlı olabildiysek ne mutlu bize, cümlemizden.

Şenol YENİN dedi ki...

Valla Gönülden Allah Razı olsun. Çok büyük bir sıkıntıdan kurtardınız.
Şuanda yaşadığım rahatlama tasvir edilemez.

Adsız dedi ki...

Hocam Allah razı olsun, ne muradınız varsa versin yüce yarabbim.

Salih ERDURUCAN dedi ki...

çok teşekkür ederim, bizim sorunumuzu da çözmüş durumda. Bilgilerinizi paylaştığınız için tekrar teşekkürler, Allah razı olsun.

yb dedi ki...

Selamlar.

Benimde kurtarmam gereken otomasyon programı verisi sql 2000 mdf ve ldf var ama açılmıyor.Recovery sql lerle açıyorum fakat save etmiyor.Verdiğiniz komutu database attach değilkenmi nasıl yazacağız anlayamadım. Çaresiz kaldım. Yardım alabilirmiyim. Şimdiden teşekkürler.


EXEC SP_RESETSTATUS 'pumpdata.mdf';

ALTER DATABASE pumpdata.mdf SET EMERGENCY

DBCC CHECKDB('pumpdata.mdf')

ALTER DATABASE pumpdata.mdf SET SINGLE_USER WITH ROLLBACK IMMEDIATE

DBCC CHECKDB ('pumpdata.mdf', REPAIR_ALLOW_DATA_LOSS)

ALTER DATABASE pumpdata.mdf SET MULTI_USER


verdiğim komut ve cevabı.

Mehmet GÜZEL dedi ki...

Veritabanı Adı yerine veritabanı dosya adlarını yazmışsınız. Veritabanı dosya adları yerine veritabanınızın adını yazıp tekrar deneyebilirsiniz.

orbay dedi ki...

Merhaba,
bendede suspect olmuş bir database var, ancak çok akıllı bir arkadaşımız bunu detach etmiş , bunun için bir çözüm varmı? attach olmuyor .

Mehmet GÜZEL dedi ki...

Merhaba,
Aynı isimde ve aynı data ve log dosya adına ait vir veritabanı oluşturun. SQL Servisini durdurup attach olmayan veritabanınızın dosyalarını oluşturduğunu geçici veritabanı dosyalarının bulun yere kopyalayıp bu dosyaları ezip SQL server servisini başlatmayı deneyin.

serkan dedi ki...

YAV NE MUBAREK BIRISINIZ SIZIN SAYENIZDE AZ BIRSEYLER BILDIGMIZI SQLDEN SIMDI DAHA BIR BILGI SAHIBI OLDUK VE BU ISTEN EKMEK PARAMIZI KAZANMAKTAYIZ ALLAH SIZDEN RAZI OLSUN ALLAHA EMANET..

Adsız dedi ki...

Allah razı olsun herkes datasını kurtarmış. konuda çok eski ama bende aynı komutları yazdım 4 gündür bekliyorum hala bi sonuç yok nerde yanlışlık var yardımcı ola bilirmisiniz.

muharrem2457 dedi ki...

kullandığımız programı kuran firma yüzünden backup yoksa yeni data oluşturulacak diyorlardı ve ben 3 ya da 5 yıllık mağaza verilerini kendilerinden çöpe atıp yeni sayfa database açıyordum. Bu komut sayesinde 2 mağazayı eski haline döndürdüm. Bu komut harika oldu. Süper. Teşekkürler.

sertay sert dedi ki...

Merhaba.
Ben sql 2008 de suspect olmuş veri tabanında bu komutları kullanmaya çalışıyorum.Fakat DBCC CHECKDB('veritabanı')komutunu çalıştırdığımda "Msg 8921, Level 16, State 1, Line 1
Check terminated. A failure was detected while collecting facts. Possibly tempdb out of space or a system table is inconsistent. Check previous errors."
hatasını veriyor.Acaba bunun anlamı nedir.Yardım ederseniz sevinirim.

Selman dadak dedi ki...

bu durumu kendi uygulamamızdan anlamamız mümkün mü? yani veritabanı bu duruma düşünce uygulama "bağlantı sağlanamadı" gerekçesi ile duruyor, bu durumda sistem tablolarını falan sorgulayarak veritabanımızın suspect duruma düşüp düşmediğini anlamak mümkün müdür?

Mehmet GÜZEL dedi ki...

Öncelikle tüm tesekkkürler icin rica ederim. T-SQL kodlarin isinize yaramas1na sevindim.

Sertay Sert:
Temdb veritaban1n1n bulundugu diski kontrol eder misiniz? Diskte yer dolmus olabilir.

Bülent ALAN dedi ki...

Üstad sen soyadın gibi ne güzel bir insansın .çok teşekkür ederim.işimize yaradı .Bu zamana kadar kaybetmiş olduğumuz datalar için çok üzüldüm.
keşke daha önce tanısaymışız seni .
ellerine sağlık .

Turgay AVCI dedi ki...

Teşekkürler Mehmet BEY,
Verdiğiniz bilgiler çok faydalı oldu.

Kolay Gelsin..

Turgay AVCI

alişan yıldırım dedi ki...

Kardeşim Kolay kolay yorum yazmam hatta hiç yazmam ama beni öyle bir şeyden kurtardın ki çağrı merkezine ait tüm raporter database' leri uçmuş durumdaydı ve komutlar sayesinde kurtardım eline koluna yüreğine sağlık eywallah.

Murat Küçük dedi ki...

Teşekkürler Mehmet BEY,

Elinize ve aklınıza emeğinize sağlık...

Sertac Aydemir dedi ki...

7 yıl olmus paylaşalı :) geleceği gormek gibi birsey. işe yarıyor. tesekkurler.

Kadir Meric dedi ki...

Allah binbir razı olsun şu cuma gününde resmen hayatım bitiyordu

Kadir Meric dedi ki...

Üstadım bende hayatımda nerdeyse ilk defa bir yorum yazıyorum şu cuma günü allah senden binbir kere razı olsun bütün benzin istasyonunun satışları uçacaktı

Osman Nuri Bilen dedi ki...

Adı güzel kendi güzel kardeşim çok ama çok teşekkür ediyorum. Allahu teala razı olsun. Herşey vermekle azalır ilim vermekle çoğalır.Hasis olmadığın için insanlara faideli olduğun için Rabbim razı olsun kardeşim.

Osman Nuri Bilen (onbilen)

Mehmet GÜZEL dedi ki...

Allah cümlemizden razı olsun.

ilyas akça dedi ki...

Ellerini öpsem az gelir..

sedat kurdaş dedi ki...

acil acil hocam kolay gelsin sol orka muhasebe programı kullanıyoruz bilgisayarımız dondu ve açıldı açıldığında orka 2015 yılı ekim Kasım Aralık kayıtlarımız silindi mydiske verdik bize dediği verileriniz bozuldu ama düzeltilmesi lazim dedi bizde harddiski aldık bunun düzelme imkanı varmidir

Mehmet GÜZEL dedi ki...

Düzenli backuplarınız var ise backup'lardan geri dönüş yapabilirsiniz.

Murat Tamer dedi ki...

tesekkurler

halil degirmenci dedi ki...

S.A. yıllar sonra bir teşekkür de benden... birkaç kaynaktan buldum ama ilk kez tam anlamı ile işime yaradı Allah rağzı olsun hocam...

Gökhan Aydın dedi ki...

Bu güzel paylaşım için teşekkürler.

.::YASAL UYARI::.

©2004-2016 Mehmet GÜZEL, http://www.mehmetguzel.net/ & http://www.mehmetguzel.com/

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.