Belirtiler
(Veya benzer diğer komutları CHECKTABLE gibi) DBCC CHECKDB yürütüldüğünde, aşağıdakine benzer bir ileti için SQL Server ERRORLOG yazılır:
Tarih/saat spid53 (mydb) DBCC CHECKDB 15 hatalar buldu MYDOMAIN\theuser tarafından yürütülen ve 0 hataları onarıldı. Süre: 0 saat 0 dakika 0 saniye. İç veritabanı anlık görüntü noktası LSN bölünmüş 00000026:0000089 d =: 0001 ve ilk LSN = 00000026:0000089 c: 0001. Yalnızca bir bilgi iletisi budur. Hiçbir kullanıcı eyleme gerek yoktur.
Bu ileti, kaç veritabanı tutarlılık hataları bulundu ve (bir onarım seçeneğini komutuyla kullanılmışsa) kaç onarıldı gösterir. Bu ileti EventID ile proje-seviyesi bilgisi iletisi olarak da Windows uygulama olay günlüğüne yazılır (hata bu iletinin olduğu bir bilgi düzeyi iletisi bildirilmez olsa bile) 8957 =.
"İç veritabanı anlık görüntü..." Başlangıç iletisi bilgileri DBCC CHECKDB veritabanı SINGLE_USER modunda değilse olan Çevrimiçi çalıştırıldı yalnızca görünür. Bir çevrimiçi DBCC CHECKDB için tutarlı bir denetlemek için veri kümesi sunmak için bir iç veritabanı anlık kullanılır olmasıdır.
Bu makalede, hataları raporlanırsa, DBCC CHECKDB ancak bunun yerine genel yaklaşım tarafından bildirilen her bir özel hata giderme tartışmak değil. Bu makaledeki CHECKDB herhangi bir referans de DBCC CHECKTABLE ve CHECKFILEGROUP özellikle belirtilmediği sürece geçerlidir.
Neden
DBCC CHECKDB veritabanı sayfaları, satırları, ayırma sayfaları, dizin ilişkileri, sistem sorunlarını tablo bilgi tutarlılığı ve diğer yapı denetimleri fiziksel ve mantıksal tutarlılığını denetler. Bu denetimlerden birini (seçtiğiniz seçeneklere bağlı olarak) başarısız olursa, hatalar komut bir parçası olarak rapor edilecektir.
Bu sorunların nedeni donanım sistem sorunlarını temel dosya sistemi bozulması, değişebilir, sürücü çalıştırır, SQL Server altyapısı ile ilgili sorunları veya bellek bozuk sayfalar. Çözüm bölümünde bildirilen hata nedenini bulmak hakkında daha fazla bilgi için aracılığıyla okuyun.
Çözüm
DBCC CHECKDB tutarlılık hata bildirirse ilk, iyi bilinen iyi bir yedek kopyasından geri yükleme çözümüdür. Ancak, bir yedek kopyadan geri yükleyemezseniz, CHECKDB hataları onarmak için bir özellik sağlar. Bu sorunlara neden olabilecek donanım veya dosya sistemi gibi sistem düzeyi sorunları varsa, geri yükleme veya onarma'yı çalıştırmayı önce önce bunları düzeltmeniz önerilir.
Bir öneri DBCC CHECKDB çalıştırdığınızda tüm hataları onarmak için gerekli minimum onarım seçeneğini ne göstermek için sağlanmıştır. Bu iletileri aşağıdaki gibi görünebilir:
CHECKDB 'mydb' veritabanında 0 ayırma hataları ve 15 tutarlılık hataları bulundu. REPAIR_ALLOW_DATA_LOSS (mydb DBCC CHECKDB tarafından bulunan hataları minimum onarım düzeydir
Onarım öneri CHECKDB tüm hataları çözmeyi denemek için onarım en az düzeyde olur. Bu, bu onarım seçeneği aslında tüm hataları düzeltmek gelmez. Ayrıca, tüm hatalar bildirilen bu hatayı gidermek için onarım düzeyini gerektirebilir. Başka bir deyişle tarafından CHECKDB REPAIR_ALLOW_DATA_LOSS önerilir, bildirilen tüm hatalar veri kaybına neden olur. Onarım hata çözümü veri kaybına neden olacak belirlemek için çalıştırmanız gerekir. Hangi onarım düzey her tablo için olacağını aşağı dar yardımcı olacak bir teknik hata raporlama herhangi bir tablo için DBCC CHECKTABLE kullanmaktır. Bu onarım belirli bir tablo için en düşük düzeyini gösterir.
Veritabanı tutarlılık hataları neden oluşmuş nedenini bulmak için bu yöntemleri göz önünde bulundurun:
-
Herhangi bir sistem düzeyi, sürücü veya disk için Windows sistem olay günlüğünü denetleyin ilgili hataları
-
Chkdsk komutunundosya sistemi bütünlüğünü denetleyin.
-
Bilgisayar ve/veya disk sistem donanım üreticileri tarafından sağlanan herhangi bir tanı programlarını çalıştırın.
-
Emin olmak için donanım satıcınıza veya aygıt üreticisi ile çalışır:
-
Donanım aygıtları ve yapılandırma SQL Server g/ç gereksinimlerini doğrular
-
Aygıt sürücüleri ve diğer destekleyici yazılım bileşenleri g/ç yolundaki tüm aygıtların güncelleştirildi
-
-
Tutarlılık hataları rapor ettiğiniz veritabanları ile aynı sürücüde SQLIOSimgibi bir programı kullanarak göz önünde bulundurun. SQLIOSim bir g/ç disk sistem bütünlüğünü sınamak için SQL Server Altyapısı'nın bağımsız bir araçtır. Not SQLIOSim SQL Server 2008 ile birlikte gelir ve ayrı bir karşıdan yükleme gerektirmez.
-
SQL Server erişim ihlalleri veya onaylamaları tarafından bildirilen hataları denetleyin.
-
Veritabanlarınızı sağlama PAGE_VERIFY seçeneği kullandığınız emin olun. Sağlama toplamı hatası bildirdi, bu disk sisteminizin iyice denetlenmesi için SQL Server yazmıştır sonra hata oluşmadı tutarlılık sayfaları diske göstergeleri demektir. SQL Server'da sorun giderme iletisi 824 hataları sağlama hakkında daha fazla bilgi için bkz.
-
ERRORLOG Msg 832 hataları arayın. May sayfaları göstergeleri bunlar önce önbellekte oldukları sırada bozuk olabilir diske yazılmamış. Msg 832 SQL Server'da sorun giderme hakkındadaha fazla bilgi için bkz.
-
Yani "(hatalar CHECKDB karşı) temiz" ve zaman zaman hata ile karşılaşıldı biliyor hareket günlüğü yedekleri span bildiğiniz bir veritabanı yedeği geri yüklemeyi deneyin. Size "Bu sorundan oynatabilirsiniz" bir "temiz" veritabanı yedeklerini ve işlem geri oturum sonra Yardım için Microsoft Teknik Destek'e başvurun.
-
Veri saflıktan hataları uygulama ekleme veya geçersiz veri SQL Server tablolarına güncelleme ile ilgili bir sorun olabilir. Hata veri olmak üzere sorun giderme hakkında daha fazla bilgi için aşağıdaki makaleye bakın: DBCC hata 2570 SQL server 2005'te sorun giderme
Ek Bilgi
DBCC CHECKDB komutu yürütmek nasıl hakkında bilgi/seçenekler ve sözdizimi hakkında daha fazla bilgi için DBCC CHECKDB komutuSQL Server Books Online'da konuyu okuyun.
Aşağıdaki gibi ek iletiler CHECKDB tarafından hatalar bulunmuşsa, ERRORLOG içinde hata raporlama amacıyla bildirilir:
Tarih/saat spid53 kullanma 'dbghelp.dll' version '4.0.5' Tarih/saat spid53 ** döküm iş parçacığı - SPID = 0, EC = 0x00000000855F5EB0 = Tarih/saat spid53 *** Dosyayolu\dosyaadıTarih/saat spid53 için gönderilen yığın dökümü * *** Tarih/saat spid53 * Tarih/saat spid53 * BEGIN yığın DÖKÜMÜNÜ: Tarih/saat spid53 * Tarih/saat SPID 53 Tarih/saat spid53 * Tarih/saat spid53 * DBCC Veritabanı Bozulması Tarih/saat spid53 * Tarih/saat spid53 * bayt giriş arabelleği 84 - Tarih/saat spid53 * dbcc checkdb(mydb) Tarih/saat spid53 * Tarihi/saati spid53 * *** Tarih/saat spid53 *--- Tarih/saat spid53 * kısa yığın dökümü Tarih/saat spid53 yığın imza dökümü için 0x00000000000001E8. Tarih/saat spid53 dış dökümü işlemi dönüş kodu 0x20002001. Watson hata raporlama ile hata bilgisi gönderildi.
Hata raporlama için kullanılan dosyaları < nnn > SQLDump .txt dosyası içerir. CHECKDB XML biçiminde bulunan hataların listesini içeren bu dosyayı tarihsel amaçlar için yararlı olabilir.
Son kez DBCC CHECKDB (son bilinen temiz CHECKDB) için bir veritabanı algılanan hatalar olmadan çalıştırıldığında öğrenmek için sistem veritabanı veya veritabanı için aşağıdaki gibi (Bu iletiyi bir bilgi düzeyi yazılmış ileti için SQL Server ERRORLOG denetleyin. İleti içinde Windows uygulama olay günlüğüne ile EventID = 17573):
Tarih/saat spid7s CHECKDB 'ana' veritabanı için Tarih/saat 22:11:11.417 (yerel saat) üzerinde hatasız tamamlandı. Yalnızca bir bilgi iletisi budur; Kullanıcı eylemi gereklidir