DBCC CHECKDB (Transact-SQL)

Mantıksal ve fiziksel bütünlük , belirtilen veritabanındaki tüm nesneler, aşağıdaki işlemleri gerçekleştirerek denetler:

  • Çalışır dbcc CHECKALLOC'u veritabanı.

  • Çalışır dbcc checktable her tablo ve Veritabanı görünümünde.

  • Çalışır dbcc checkcatalog veritabanı.

  • Veritabanındaki her dizinli görünüm içeriğini doğrular.

  • Bağ -düzey tutarlılık tablo meta veriler ve dosya sistemi dizinlerinize ve dosyalarınıza arasında saklarken doğrular varbinary(max) veri dosya sistemindeki kullanarak FILESTREAM.

  • Doğrulama Service Broker veri veritabanı.

Bu dbcc CHECKALLOC'u, dbcc checktable veya dbcc checkcatalog komutları dbcc checkdb ayrı ayrı çalıştırılması gerekmez olduğunu anlamına gelir.Bu komutları gerçekleştirme denetimleri hakkında daha ayrıntılı bilgi için bu komutların açıklamalarına bakın.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

DBCC CHECKDB 
[
    [ ( database_name | database_id | 0
        [ , NOINDEX 
        | , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]
    ) ]
    [ WITH 
        {
            [ ALL_ERRORMSGS ]
            [ , EXTENDED_LOGICAL_CHECKS ] 
            [ , NO_INFOMSGS ]
            [ , TABLOCK ]
            [ , ESTIMATEONLY ]
            [ , { PHYSICAL_ONLY | DATA_PURITY } ]
        }
    ]
]

Bağımsız değişkenler

  • database_name | database_id | 0
    Veya kimliği için bütünlük denetimleri çalıştırmak veritabanının adıdır.Belirtilmezse veya 0 belirtilirse, geçerli veritabanı kullanılır.Veritabanı adları için kuralları ile uymak gerekir tanımlayıcıları.

  • NOINDEX
    Yoğun denetimleri kullanıcı tablolar için kümelenmemiş dizinleri değil gerçekleştirilmesi gerektiğini belirtir.Bu genel yürütme saatazaltır.sistem tablosu dizinleri üzerinde bütünlük denetimleri her zaman gerçekleştirildiğinden NOINDEX sistem tabloları etkilemez.

  • REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD
    dbcc checkdb bulunan hataları onarmak belirtir.Belirtilen veritabanı tek kullanıcı modu aşağıdaki onarım seçenekleri kullanmak için olmalıdır.

    • REPAIR_ALLOW_DATA_LOSS
      Tüm bildirilen hataları onarmak çalışır.Bu onarımlar, bazı veri kaybına neden olabilir.

    • REPAIR_FAST
      Sözdizimi yalnızca geriye dönük uyumluluk için korunur.Hiçbir onarım eylemler gerçekleştirilir.

    • REPAIR_REBUILD
      Hiçbir veri kaybı olasılığı olan onarımları gerçekleştirir.Bu eksik satırları kümelenmemiş dizinleri ve daha fazla saatonarımı gibi Hızlı onarım içerebilir-onarım dizin yeniden oluşturma gibi tüketen.

      REPAIR_REBUILD FILESTREAM veri ilgili hataları onarmaz.

    Önemli notÖnemli

    ONARIM seçenekleri yalnızca son çare olarak kullanın.Hataları onarmak için bir yedekgeri öneririz.Onarım işlemlerini bulunabilecek kısıtlamalar üzerinde veya tablolar arasında hiçbirini dikkate almaz.Belirtilen tablo bir veya daha fazla kısıtlamalar söz konusu ise, dbcc CHECKCONSTRAINTS Onarım işleminden sonra çalıştıran öneririz.ONARIM kullanmak zorundaysanız, dbcc checkdb kullanmak için onarım düzey bulmak için onarım seçeneği olmadan çalıştırın.Öneririz REPAIR_ALLOW_DATA_LOSS düzeykullanırsanız, o, yedeklemek bu seçeneğiyle dbcc checkdb çalıştırmadan önce veritabanını.

  • ALL_ERRORMSGS
    Nesne başına tüm bildirilen hataları görüntüler.Tüm hata iletileri varsayılan olarak görüntülenir.Belirleme veya bu seçenek atlama hiçbir etkisi yoktur.Hata iletileri tarafından üretilen iletileri haricinde nesne kimliği sıralandığı tempdb veritabanı.

    De SQL Server Management Studio, hata iletileri sayısı döndürülür 1000.Kullanarak Management Studio, all_errormsgs belirtildiğinde hataları tam bir listesini almak için birden çok kez dbcc checkdb çalıştırmak gerekebilir.all_errormsgs belirttiğinizde, dbcc komutunu kullanarak çalıştırmak öneririz sqlcmd yardımcı programını veya planlama bir SQL Server Aracısı iş komutunu çalıştırın ve doğrudan çıktı dosyası.Bu yöntemlerden birini, bir kez komutu çalıştıran tüm hata iletilerini bildirir garanti eder.

  • EXTENDED_LOGICAL_CHECKS
    Uyumluluk düzey 100 ise (SQL Server 2008) veya sonraki bir dizinli görünüm, xml dizinler ve kayma dizinler üzerinde mantıksal tutarlılık denetimleri gerçekleştirir yeri bulunamıyor.

    "Gerçekleştirme mantıksal tutarlılığını denetler, dizinler," daha fazla bilgi için bkz: "Açıklamalar" daha sonra bu bölümde.

  • NO_INFOMSGS
    Bilgi tüm iletileri bastırır.

  • TABLOCK
    Bir iç veritabanı anlık görüntüsükullanmak yerine kilitleri edinmek dbcc checkdb neden olur.Bu veritabanı kısa dönemli özel (x) kilit içerir.tablock veritabanı ağır yükü altında daha hızlı çalıştırmak dbcc checkdb neden olur, ancak dbcc checkdb çalışırken eşzamanlılık veritabanında kullanılabilir azaltır.Kilitleri hakkında daha fazla bilgi için bkz: Kilit modları.

    tablock gerçekleştirilen denetimler sınırlar; dbcc checkcatalog veritabanını çalıştırılmaz ve Service Broker veri geçerliliği yok.

  • ESTIMATEONLY
    Tahmini miktarını görüntüler tempdb ile dbcc checkdb çalıştırmak için gerekli alanıtüm diğer belirtilen seçenekleri.Asıl veritabanını denetim gerçekleştirilmez.

  • PHYSICAL_ONLY
    bütünlük sayfa ve kayıt üstbilgileri fiziksel yapısını ve veritabanı ayırma tutarlılığını için denetimi sınırlar.Bu onay küçük genel gider kontrol fiziksel veritabanı tutarlılığını sağlamak üzere tasarlanmıştır, ancak mümkün de sayfaları, sağlama toplamı hatası ve bir kullanıcının verilerini tehlikeye ortak donanım arızaları parçalanmış algılamak .

    dbcc checkdb, tam bir çalışma daha önceki sürümlerinden oldukça uzun sürebilir.Bu davranış oluşur:

    • Mantıksal denetimleri daha kapsamlıdır.

    • Denetlenecek yapıların bazıları daha karmaşıktır.

    • Birçok yeni denetimler, yeni özellikler eklemek için sunulmuştur.

    Bu nedenle, PHYSICAL_ONLY seçeneğini kullanarak bir çok daha kısa çalışmasaat için dbcc checkdb büyük veritabanlarını neden olabilir ve üretim sistemlerinde sık kullanım için önerilir.Yine de tam bir çalıştırma dbcc checkdb, düzenli olarak yapılması önerilir.Bu metinler sıklığını bireysel işletmeler ve üretim ortamları için özel etkenler bağlıdır.

    PHYSICAL_ONLY her zaman NO_INFOMSGS anlamına gelir ve onarım seçenekleri herhangi biri izin verilmez.

    Not

    PHYSICAL_ONLY tüm atlamak dbcc checkdb neden belirtilmesi FILESTREAM verileri denetler.

  • DATA_PURITY
    Check database geçersiz sütun değerlerini veya öğrenmek dbcc checkdb neden-in-aralık.Örneğin, daha büyük veya daha az kabul edilebilir aralık tarih ve saat değerleri olan sütunlar dbcc checkdb algılar datetime veri türü; veya decimal veya yaklaşık sayısal veri türü geçersiz ölçek ya da kesinlik değerleri içeren sütunların.

    Oluşturulan veritabanları için SQL Server 2005 ve daha sonra sütun-değer bütünlük denetler varsayılan olarak etkinleştirilir ve DATA_PURITY seçeneği. gerektirmeyenDaha önceki sürümlerinden yükseltme veritabanları için SQL Server, sütun-değeri denetler etkin varsayılan olarak DATA_PURITY ile dbcc checkdb hata ücretsiz veritabanı. kadarBundan sonra dbcc checkdb sütundenetler- bütünlük varsayılan değer.Veritabanı önceki sürümlerinden yükseltme tarafından checkdb nasıl etkilenebileceği hakkında daha fazla bilgi için SQL Server, açıklamalar bölümüne bakın daha sonra bu konuda.

    sütun-bütünlük kontrolü olmayan PHYSICAL_ONLY belirtilirse, gerçekleştirilen.

    dbcc onarım seçenekleri kullanarak bu seçeneği tarafından bildirilen doğrulama hatası düzeltilemeyebilir.El ile bu hataları giderme hakkında daha fazla bilgi için bkz: Bilgi Bankası makale 923247: SQL Server 2005'te 2570 dbcc hata giderme.

Açıklamalar

Önceki sürümlerinde SQL Server, değerlerini başına-halinetablo ve dizin başına satır sayısı ve sayfa sayıları gelir yanlış.Belirli koşullar altında bu değerler en az biri bile negatif hale gelebilir.De SQL Server 2005 ve daha sonra bu değerler her zaman doğru korunur.Bu nedenle, üzerinde oluşturulan veritabanlarını SQL Server 2005 ve daha sonra hiçbir zaman içermelidir hatalı sayar; Ancak, yükseltilir veritabanlarının SQL Server 2005 ve daha sonra might.Bu veritabanında depolanan herhangi bir veri bozulma değildir.Herhangi biri, bu negatif olduğunda dbcc checkdb algılamak için geliştirilmiştir.Negatif sayıları algıladığında, dbcc checkdb çıktı bir uyarı ve çalıştırmak için bir öneri içeren dbcc updateusage bu sorunu çözmek için.

dbcc checkdb devre dışı dizinler incelemek değil.Devre dışı dizinler hakkında daha fazla bilgi için bkz: Dizinler devre dışı bırakma.

Bir kullanıcı tanımlı tür bayt olan sipariş edildi olarak işaretlenmişse, yalnızca olması gerekir bir seri hale getirme kullanıcı tanımlı tür.Tutarlı bir kullanıcı tanımlı türler bayt sipariş serileştirmek olmamasından, dbcc checkdb çalıştırdığınızda 2537 hatasının oluşmasına neden olur.Daha fazla bilgi için, bkz. Kullanıcı tanımlı türü gereksinimleri.

Çünkü kaynak veritabanı yalnızca tek kullanıcı modu, dbcc checkdb komutu doğrudan çalıştırabilmelerine olamaz değiştirilemez.Ancak, ne zaman dbcc checkdb yürütüldüğünde karşı asıl veritabanı, ikinci bir checkdb da dahili olarak üzerinde çalıştırılan Resource veritabanı.Yani, dbcc checkdb ek sonuçlardöndürebilir.Komut seçeneği kümeolduğunda ya da PHYSICAL_ONLY ya da ESTIMATEONLY seçeneği kümeolduğunda ek sonuç kümeleri döndürür.

Sürümlerinde SQL Server 2005 SP2 önce yürütme dbcc checkdb temizler plan önbelleği örnek için SQL Server.Plan önbelleği temizleniyor, tüm sonraki yürütme planları yeniden derlemesinde neden olur ve ani bir geçici sorgu performans azalmasına neden olabilir.SP2 ve sonraki sürümlerinde, dbcc checkdb yürütme planı önbellek temizlemez.

Dizinler üzerinde mantıksal tutarlılığı gerçekleştirme denetler

Mantıksal tutarlılık denetimini dizinlerde Uyumluluk düzey veritabanı göre aşağıdaki gibi değişir:

  • Uyumluluk düzey 100 ise (SQL Server 2008) veya daha yüksek:

    • NOINDEX belirtilmediği sürece, tek bir tablo ve tüm kümelenmemiş dizinler dbcc checkdb hem fiziksel ve mantıksal tutarlılık denetimleri gerçekleştirir.Ancak, xml dizinler, kayma dizinleri ve dizin oluşturulmuş görünümler yalnızca fiziksel tutarlılık denetimleri varsayılan olarak yapılır.

    • EXTENDED_LOGICAL_CHECKS ile belirtilmiş olması durumunda bir dizinli görünüm, xml dizinler ve kayma dizinler üzerinde mantıksal denetimleri gerçekleştirilmez, burada sunmak.Varsayılan olarak, fiziksel tutarlılık denetimleri önce mantıksal tutarlılık denetimleri gerçekleştirilmez.NOINDEX de belirtilirse, yalnızca mantıksal denetimleri gerçekleştirilmez.

      Bu mantıksal tutarlılık onay iç dizin tablo Index nesnesinin, başvuran kullanıcı tablo denetler.Sınırdaki satırları bulmak için bir tam kesişimini iç ve kullanıcı tabloları gerçekleştirmek için bir iç sorgu oluşturulur.Bu sorguyu çalıştıran bir çok yüksek performans üzerindeki etkisi ve ilerleme durumunu izlenemez.Bu nedenle, yalnızca fiziksel bozulma ilgisiz dizin sorunları şüpheleniyorsanız veya sayfa-düzey sağlama kapatılmış ve sütun-düzey donanım bozulması şüphe ile EXTENDED_LOGICAL_CHECKS belirtmek öneririz.

    • dbcc checkdb dizin filtre uygulanmış bir dizin, dizin girişlerini filtre yüklemi karşılamak doğrulamak için tutarlılık denetimleri gerçekleştirir.

  • Uyumluluk düzey 90 veya NOINDEX belirtilmediği sürece daha az, dbcc checkdb fiziksel ve mantıksal tutarlılık denetimleri tek bir tablo veya dizinli görünüm ve tüm onun kümelenmemiş ve xml dizinler gerçekleştirir.Kayma dizinler desteklenmez.

Bir veritabanı Uyumluluk düzey öğrenmek için

İç Veritabanı anlık görüntü

dbcc checkdb bu denetimleri gerçekleştirmek için gereken işlem tutarlılığı için bir iç veritabanı anlık görüntüsü kullanır.Bu komut yürütüldüğünde bu engelleme ve eşzamanlılık sorunlarını önler.Daha fazla bilgi için Seyrek dosya boyutları veritabanı anlık içinde anlama ve dbcc iç veritabanı anlık kullanım bölümünde dbcc (Transact-SQL).Bir anlık görüntü oluşturulan veya tablock belirtilmiş, dbcc checkdb gerekli tutarlılık elde etmek için kilitleri kapsar.Bu durumözel veritabanı kilit ayırma denetimleri gerçekleştirmek için gereklidir ve paylaşılan tablo kilitleri tablo denetimleri gerçekleştirmek için gereklidir.

dbcc checkdb karşı çalıştırdığınızda başarısız master veritabanı anlık görüntüsü bir iç oluşturulamaz.

dbcc checkdb karşı çalışan tempdb her ayırma veya katalog denetim yapmaz ve almak gerekir paylaşılan tablo kilitleri gerçekleştirilecek tablo denetler.Bu, performansla ilgili nedenlerden dolayı veritabanı anlık üzerinde kullanılamaz çünkü tempdb.Yani, gerekli işlem tutarlılığı alınamıyor.

Denetleme ve onarma FILESTREAM veri

FILESTREAM veritabanı ve tabloiçin etkinleştirildiğinde, isteğe bağlı olarak, saklayabilirsiniz varbinary(max) ikili büyük nesneleri (BLOB) dosya sistemi.dbcc checkdb BLOB dosya sisteminde depolayan bir veritabanı kullanırken, dbcc bağ -düzey tutarlılık dosya sistemi ve veritabanı arasında denetler.

Örneğin, bir tablo içeriyorsa, bir varbinary(max),sütun FILESTREAM öznitelikkullanan dbcc checkdb denetleyin, dosya sistemi dizinleri ve dosyaları ve tablo satırları, sütunları ve arasında bire bir eşleme yok sütun değerleri.REPAIR_ALLOW_DATA_LOSS seçeneğini belirtirseniz, dbcc checkdb Bozulması onarabilirsiniz.FILESTREAM bozulmayı onarmak için dbcc dosya sistem verileri eksik olan tüm tablo satırları siler.

En iyi yöntemler

Üretim sistemlerinde sık kullanmak için PHYSICAL_ONLY seçeneğini kullanmanızı öneririz.PHYSICAL_ONLY kullanarak büyük ölçüde çalışmasaat için dbcc checkdb büyük veritabanlarını kısaltabilirsiniz.Ayrıca seçenekleri ile dbcc checkdb düzenli olarak çalıştırmanızı öneririz.Bu çalışır ne sıklıkta gerçekleştirileceğini, bireysel işletmeler ve üretim ortamlarına bağlıdır.

Paralel nesneleri denetleme

Varsayılan olarak, dbcc checkdb paralel nesnelerin denetimini gerçekleştirir.Paralellik derecesini otomatik olarak sorgu işlemcisi tarafından belirlenir.Maksimum paralellik derecesi hemen Paralel sorgular gibi yapılandırılır.dbcc denetlemek için kullanılabilir işlemci sayısına kısıtlamak için sp_configure.Daha fazla bilgi için, bkz. en büyük ölçüde parallelism seçeneği.Paralel denetimi izleme bayrağı 2528 kullanarak devreden çıkarılabilir.Daha fazla bilgi için, bkz. İzleme Bayrakları (Transact-SQL).

dbcc hata iletileri anlama

dbcc checkdb komutu tamamlandıktan sonra bir ileti yazılır SQL Server hata günlüğü.dbcc komutu başarıyla yürütür, ileti başarı ve komutu çalıştırılmadan saat gösterir.dbcc komut bir hata nedeniyle onay tamamlamadan önce durursa, komut sonlandırıldı olduğunu, durumu değeri ve saat komutu çalıştırılmadan iletisi gösterir.Aşağıdaki tablo , listeler ve iletiye dahil durum değerleri açıklanmaktadır.

Durumu

Açıklama

0

Hata numarası 8930 Sürüldü.Bu bir dbcc komut sonlandırıldı meta veriler Bozulması gösterir.

1

Hata numarası 8967 Sürüldü.İç dbcc hata oluştu.

2

Acil Durum modu veritabanı onarım sırasında bir hata oluştu.

3

Bu bir dbcc komut sonlandırıldı meta veriler Bozulması gösterir.

4

Assert veya erişim ihlali algılandı.

5

dbcc komut sonlandırıldı bilinmeyen bir hata oluştu.

Hata bildirimi

döküm dosyasını (sqldumpnnnn.txt) oluşturulur SQL Server Günlük dizini olduğunda dbcc checkdb algılar bir bozulma hatası.Özellik kullanımı veri koleksiyon ve hata raporlama özellikleri etkinleştirildiğinde örnek için SQL Server, dosya için iletilen otomatik olarak Microsoft.Toplanan verileri geliştirmek için kullanılan SQL Server işlevi.

döküm dosyasını sonuçlar dbcc checkdb komutu ve ek tanılama çıktı içerir.Sınırlı erişim SQL Server hizmet hesabı ve üyeleri sysadmin rolü.Varsayılan olarak, sysadmin rolü içeren tüm Windows BUILTIN\Administrators grubunun üyeleri ve yerel Yöneticiler grubu.Veri koleksiyon işlemi başarısız olduğunda dbcc komutu başarısız olmaz.

Hataları çözme

dbcc checkdb tarafından hataları raporlanırsa arasında ONAR ONAR seçeneklerden birini çalıştırmak yerine veritabanının yedek veritabanını geri öneririz.Hiçbir yedek varsa, onarım çalışan bildirilen hataları düzeltir.Onar seçeneğini kullanmak için bildirilen hataların listesini sonunda belirtilir.Ancak, REPAIR_ALLOW_DATA_LOSS seçeneğini kullanarak hataları düzeltme bazı sayfaları ve bu nedenle bazı veri silme gerektirebilir.

Bazı koşullarda, değerleri geçerli olmayan veritabanına veya out girilmesi-,-aralık sütunveri türüne göre.De SQL Server 2000, dbcc checkdb aralık yapmaz veya bütünlük denetler bu sütun değerleri.Bununla birlikte, SQL Server 2005 ve daha sonra dbcc checkdb algılamak sütun değerlerini geçersiz tüm sütun veri türleri.Bu nedenle, veritabanları DATA_PURITY seçeneğiyle dbcc checkdb çalışan yükseltilmiş önceki sürümlerinden SQL Server zaten varolan sütunaçmak-değer hatalar.Çünkü SQL Server Bu hataları otomatik olarak onaramıyor sütun değeri el ile güncelleştirilmelidir.checkdb böyle bir hata algılarsa, uyarı, hata numarası 2570 ve bilgi etkilenen satır tanımlamak ve el ile hatayı düzeltmek için checkdb döndürür.

Onarım yapılan değişiklikleri geri almak kullanıcı için kullanıcı işlem altında gerçekleştirilebilir.Onarımlar geri alınır, veritabanı hala hatalar içerir ve bir yedekgeri yüklenmesi gerekir.Onarım tamamlandıktan sonra yedeklemek veritabanı.

Acil Durum modu veritabanı hataları giderme

Ne zaman bir veritabanı düzgün Acil moduna küme kullanarak alter database deyim, dbcc checkdb gerçekleştirebilir özel bazı onarımlar veritabanında REPAIR_ALLOW_DATA_LOSS seçeneği belirtilmediği takdirde.Bu onarımlar, fiziksel olarak tutarlı bir durumda yeniden çevrimiçi duruma getirilebilmesi normalde kurtarılamayan veritabanları için izin verebilir.Bu onarımlar, son çare olarak ve yalnızca bir yedekveritabanından geri yükleme alamazsınız kullanılmalıdır.Veritabanı Acil moduna küme olduğunda, veritabanı READ_ONLY olarak işaretlenir, günlüğü devre dışı ve üyelerine erişim sınırlıdır sysadmin sabit sunucu rolü.

Not

Hareketi yürütme sonrasında bir kullanıcı hareket ve geri almak içinde Acil modunda dbcc checkdb komutu çalıştıramazsınız.

Acil modunda veritabanıdır ve REPAIR_ALLOW_DATA_LOSS yan tümce ile dbcc checkdb çalıştırmak, aşağıdaki eylemleri alınır:

  • dbcc checkdb hataları değil oluşmuş gibi g/Ç veya sağlama toplamı hatası nedeniyle erişilemez işaretlenmiş sayfaları kullanır.Böylece, veritabanından veri kurtarma şansını artırır.

  • dbcc checkdb normal günlük tabanlı kurtarma teknikleri kullanarak veritabanını kurtarmak için çalışır.

  • Hareket günlüğü bozulması nedeniyle veritabanı kurtarma başarısız olursa, işlem günlüğü oluşturulur.İşlem günlüğü yeniden inşa etmek, işlem tutarlılığı kaybına neden.

dbcc checkdb komutu başarılı olursa, veritabanını fiziksel olarak tutarlı bir durumda ve veritabanı durumunu küme için çevrimiçi.Ancak, veritabanına bir veya daha fazla işlem tutarsızlık içerebilir.Siz çalıştırmanızı öneririzdbcc checkconstraints herhangi bir iş mantığı zayıf noktalardan ve hemen yedeklemek veritabanı tanımlamak için.

dbcc checkdb komutu başarısız olursa, veritabanı onarılamıyor.

dbcc checkdb REPAIR_ALLOW_DATA_LOSS Yinelenen veritabanlarında çalışan

REPAIR_ALLOW_DATA_LOSS seçeneği ile dbcc checkdb komutunu çalıştıran kullanıcı veritabanları (yayın ve abonelik veritabanları) ve çoğaltmaişlemi tarafından kullanılan dağıtım veritabanı etkileyebilir.Yayını ve abonelik veritabanları yayınlanan ve çoğaltma meta veriler tabloları içerir.Bu veritabanlarında aşağıdaki olası sorunları dikkate alın:

  • Yayımlanmış tabloları.Bozuk kullanıcı verileri onarmaya checkdb işlemi tarafından gerçekleştirilen eylemler çoğaltılmamış:

    • Birleştirme çoğaltma Tetikleyicileri yayımlanmış tablolar için değişiklikleri izlemek için kullanır.Satır eklenen, güncelleştirilen veya checkdb işlem tarafından silinmiş, Tetikleyiciler ateşlenmesine değil; Bu nedenle, değişiklik çoğaltılmaz.

    • İşlem çoğaltma işlem günlüğü yayımlanmış tablolar için değişiklikleri izlemek için kullanır.Günlük Okuyucu Aracısı dağıtım veritabanıbu değişiklikleri sonra hareket ettirir.Bazı dbcc onarım Günlük Okuyucu Aracısıtarafından oturum açmış olsa da, çoğaltılamaz.Veri sayfa checkdb işlemi tarafından ayırmanın, örneğin, Günlük Okuyucu Aracısı bu delete deyimtercih etmez; Bu nedenle, değişiklik çoğaltılmaz.

  • Çoğaltma meta veriler tablolar.Bozuk çoğaltma meta veriler tabloları onarmak için checkdb işlemi tarafından gerçekleştirilen eylemler, kaldırma ve çoğaltmayeniden yapılandırma gerektirir.

kullanıcı veritabanı veya dağıtım veritabanıREPAIR_ALLOW_DATA_LOSS seçeneği ile dbcc checkdb komutu çalıştırmak Eğer:

  1. Sistem Quiesce: Veritabanı ve tüm diğer veritabanlarında çoğaltma topolojisini etkinliğini durdurur ve tüm düğümlerin eşitlemek deneyin.Daha fazla bilgi için, bkz. Nasıl yapılır: Quiesce çoğaltma topolojisini (çoğaltma Transact-SQL programlama).

  2. dbcc checkdb çalıştırmak.

  3. dbcc checkdb rapor dağıtım veritabanı veya herhangi bir çoğaltma meta veriler tablo kullanıcı veritabanıonarımı için herhangi bir tablo içeriyorsa, kaldırmak ve çoğaltmayeniden yapılandırın.Daha fazla bilgi için, bkz. Çoğaltma kaldırma.

  4. dbcc checkdb rapor herhangi bir yinelenen tablo için onarımlar içerir yayın ve abonelik veritabanları verileri arasında fark olup olmadığını belirlemek için veri doğrulama gerçekleştirin.Daha fazla bilgi için, bkz. Yayımcı ve abone veri eşleştir.

Sonuç Kümeleri

dbcc checkdb aşağıdaki sonuç kümesidöndürür.Ne zaman ESTIMATEONLY, PHYSICAL_ONLY veya NO_INFOMSGS seçenekleri belirlenmiş dışındaki değerler değişebilir:

DBCC results for 'model'.

Service Broker Msg 9675, Level 10, State 1: Message Types analyzed: 13.

Service Broker Msg 9676, Level 10, State 1: Service Contracts analyzed: 5.

Service Broker Msg 9667, Level 10, State 1: Services analyzed: 3.

Service Broker Msg 9668, Level 10, State 1: Service Queues analyzed: 3.

Service Broker Msg 9669, Level 10, State 1: Conversation Endpoints analyzed: 0.

Service Broker Msg 9674, Level 10, State 1: Conversation Groups analyzed: 0.

Service Broker Msg 9670, Level 10, State 1: Remote Service Bindings analyzed: 0.

DBCC results for 'sys.sysrowsetcolumns'.

There are 630 rows in 7 pages for object 'sys.sysrowsetcolumns'.

DBCC results for 'sys.sysrowsets'.

There are 97 rows in 1 pages for object 'sys.sysrowsets'.

DBCC results for 'sysallocunits'.

There are 195 rows in 3 pages for object 'sysallocunits'.

There are 0 rows in 0 pages for object "sys.sysasymkeys".

DBCC results for 'sys.syssqlguides'.

There are 0 rows in 0 pages for object "sys.syssqlguides".

DBCC results for 'sys.queue_messages_1977058079'.

There are 0 rows in 0 pages for object "sys.queue_messages_1977058079".

DBCC results for 'sys.queue_messages_2009058193'.

There are 0 rows in 0 pages for object "sys.queue_messages_2009058193".

DBCC results for 'sys.queue_messages_2041058307'.

There are 0 rows in 0 pages for object "sys.queue_messages_2041058307".

CHECKDB found 0 allocation errors and 0 consistency errors in database 'model'.

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

NO_INFOMSGS belirtildiğinde dbcc checkdb aşağıdaki sonuç kümesi (ileti) döndürür:

The command(s) completed successfully.

PHYSICAL_ONLY belirtildiğinde dbcc checkdb aşağıdaki sonuç kümesi döndürür:

DBCC results for 'model'.

CHECKDB found 0 allocation errors and 0 consistency errors in database 'master'.

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

ESTIMATEONLY belirtildiğinde dbcc checkdb aşağıdaki sonuç kümesi döndürür.

Estimated TEMPDB space needed for CHECKALLOC (KB)

-------------------------------------------------

13

(1 row(s) affected)

Estimated TEMPDB space needed for CHECKTABLES (KB)

--------------------------------------------------

57

(1 row(s) affected)

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

İzinler

Üyelik gerektiren sysadmin sabit sunucu rolü veya db_owner veritabanı rolüsabit.

Örnekler

A.Hem geçerli hem de başka bir denetimi veritabanı

Aşağıdaki örnek yürütür DBCC CHECKDB ve geçerli veritabanı için AdventureWorks2008R2 veritabanı.

-- Check the current database.
DBCC CHECKDB;
GO
-- Check the AdventureWorks2008R2 database without nonclustered indexes.
DBCC CHECKDB (AdventureWorks2008R2, NOINDEX);
GO

B.Bilgilendirme iletileri de geçerli veritabanı denetimi

Aşağıdaki örnek, geçerli veritabanında arama yapar ve bilgi tüm iletileri bastırır.

DBCC CHECKDB WITH NO_INFOMSGS;
GO

Değişiklik Geçmişi

Güncelleştirilmiş içerik

Bölümünde belirtilen FILESTREAM dizin veya tablo satır, sütunveya sütun değeri eşlemeyin dosyalar kaldırılır 'Denetleme ve onarma FILESTREAM veri' içerik kaldırıldı.