"Msg 8992" hata iletisini ve tutarsız meta verileri SQL Server Sistem Kataloğu

Makale çevirileri Makale çevirileri
Makale numarası: 2787112 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Microsoft SQL Server, aşağıdaki sorunlardan biriyle karşılaşabilirsiniz.

Sorun 1

SQL Server veritabanındaki sistem tablolarında el ile güncelleştirdiğinizde, sistem meta verilerde bir tutarsızlık oluşturduğunuz varsayılmıştır. Daha sonra tutarsızlıkları tablolarındaki meta verileri tanımlamak için DBCC CHECKDB komutu çalıştırmayı deneyin. Bu durumda, aşağıdaki hata iletisi döndürülür:
Msg 8992, Düzey 16, State 1, satır 1
Katalog Msg 3853, durum 1 denetleyin: Öznitelik (referenced_object_id =Nesne kimliği>, key_index_id =Dizin kodu>) satır (object_id =Nesne kimliği>) sys.foreign_keys eşleşen bir satır yok (object_id =Nesne kimliği>, index_id =Dizin kodu>) sys.indexes içinde.

Sorun 2

SQL Server sistem tabloları güncelleştirmek istediğinizde, aşağıdakine benzer bir uyarı iletisi alırsınız:
Uyarı: Sistem tablosu teşhis koduTablo kimliği> doğrudan veritabanı kimliği güncelleştirildiVeritabanı kimliği> ve önbellek tutarlılık korunmaz. SQL Server yeniden başlatılması.
Bu durumda, DBCC CHECKDB veya DBCC CHECKCATALOG komutunu çalıştırırsanız, uyarı iletisi sistem kataloglar son değiştirilme saati ve tarihi ile birlikte verilir. Ayrıca, aşağıdaki uyarı iletisini SQL Server günlüğüne kaydedilir:
Uyarı: Sistem Kataloğu doğrudan veritabanı kimliği güncelleştirildiVeritabanı kimliği>, en sonGünlük süresi>.
Not Bu bilgiler veritabanı başlığında depolanır ve veritabanı etkin kalma süresi devam ederse.

Neden

SQL Server sistem tabloları el ile güncelleştirmeleri desteklemediğinden bu sorun oluşur. Sistem tabloları yalnızca SQL Server veritabanı altyapısı tarafından güncelleştirilmesi gerekir.

Not Sistem katalog görünümlerini kullanarak sistem tablolarında veri görüntüleyebilirsiniz.

Çözüm

Bu sorunu gidermek için aşağıdaki yöntemlerden birini kullanın.

Yöntem 1

Temiz bir veritabanı yedeği varsa, veritabanını yedekten geri yükleyin.

Not Bu yöntem yalnızca yedekleme meta verilerinde tutarsızlıklar yoksa çalışır.

Yöntem 2

Veritabanını bir yedek kopyadan geri yükleyemezseniz, veri ve nesneleri yeni bir veritabanına verin. Ardından, el ile güncelleştirme veritabanının içeriğini yeni veritabanına aktarın. NotDBCC CHECKDB komutları ONARIM seçenekleri kullanarak sistem kataloglar tutarsızlıkları onaramaz. Bu nedenle, komut komut meta veri bozulması onaramaz çünkü herhangi önerilen onarım düzeyi sağlamaz.

Daha fazla bilgi

Sistem kataloglar için yapılan değişiklikleri algılar Sistem Merkezi Danışmanı kuralı hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2688307 SQL Server veritabanındaki sistem tablolarında güncelleştirdiğinizde, olay kimliği 17659 ve olay kimliği 3859 kaydediliyor
Aşağıdaki tabloda sistem kataloglar tutarsızlıkları göstermek hataları listeler. Genellikle, aşağıdaki hatalar "8992" hata kodu ile birlikte oluşturulur.
Bu tabloyu kapaBu tabloyu aç
Hataİleti metni
3851Geçersiz bir satır (% ls) sistem tablo sys.%ls%ls içinde bulunamadı
3852Satır (% ls) sys.%ls%ls sys.%ls%ls (% ls) eşleşen bir satır yok.
3853Öznitelik (% ls) sys.%ls%ls (% ls) satırın sys.%ls%ls içinde eşleşen bir satır (% ls) yok.
3854Özniteliği (% ls) sys.%ls%ls (% ls) satırın içinde geçersiz sys.%ls%ls (% ls) eşleşen bir satır vardır.
3855Sys.%ls%ls bir satırda (% ls) olmadan özniteliği (% ls) bulunmaktadır.
3856Öznitelik (% ls) var, ancak sys.%ls%ls (% ls) satırı için gerekir.
3857(% Ls) özniteliği gereklidir, ancak sys.%ls%ls (% ls) satır eksik.
3858Öznitelik (% ls) sys.%ls%ls (% ls) satırda geçersiz bir değere sahip.
3859Uyarı: Sistem Kataloğu, veritabanı kimliği % d, en son % S_DATE'de güncelleştirildi.
Bu sorunları yaşarsanız, alabileceğiniz hata iletileri örnekleri şunlardır:
Sunucu: Msg 2513, Düzey 16, State 1, satır 1
Tablo hata: nesne kimliğiNesne kimliği> (nesne 'Nesne kimliği>') 'SYSCOLUMNS' ve 'SYSOBJECTS' arasında eşleşmiyor.

Msg 3853, Düzey 16, State 1, satır 2
Öznitelik (object_id =Nesne kimliği>) satır (object_id =Nesne kimliği>, index_id =Dizin kodu>) sys.indexes eşleşen bir satır yok (object_id =Nesne kimliği>) sys.objects içinde.

Msg 3855, Düzey 16, State 1, satır 2
Öznitelik (data_space_id = 1) bir satır var (object_id =Nesne kimliği>, index_id =Dizin kodu>) sys.indexes içinde.

Msg 3852, Düzey 16, State 1, satır 1
Satır (object_id =Nesne kimliği>, index_id = 1) sys.indexes içinde (Tür = U) eşleşen bir satır yok (sınıf = 0, objid =Nesne kimliği>, indexid =Dizin kodu>, rowsetnum = 1), sys.sysrowsetrefs.

Msg 3852, Düzey 16, State 1, satır 1
Satır (object_id =Nesne kimliği>, index_id = 1) sys.indexes içinde (Tür = U) eşleşen bir satır yok (sınıf = 0, objid =Nesne kimliği>, indexid =Dizin kodu>, rowsetnum = 1), sys.sysrowsetrefs.

Msg 3853, Düzey 16, State 1, satır 1
Öznitelik (default_object_idNesne kimliği= >) satır (object_id =Nesne kimliği>, column_id =Sütun kimliği>) sys.columns eşleşen bir satır yok (object_id =Nesne kimliği>) sys.objects içinde.

Msg 8992, Düzey 16, State 1, satır 1
Katalog Msg 3853, durum 1 denetleyin: Öznitelik (object_id =Nesne kimliği>) satır (object_id =Nesne kimliği>, column_id =Sütun kimliği>) sys.columns eşleşen bir satır yok (object_id =Nesne kimliği>) sys.objects içinde.

DBCC yürütme tamamlandı. DBCC hata iletileri yazdırıldıysa, sistem yöneticinize başvurun.
Ayrıca, alabilirsiniz bir " CHECKDB komutu çalıştırarak bir veritabanının tutarlılığını denetleyin, aşağıdaki benzer Msg 211" hata iletisi.
Msg 211, düzey 23, 230, durum satırı 1
Olası şema bozukluk. DBCC CHECKCATALOG çalıştırın.

İleti 0, 20, durumu 0, 0 satır düzeyi
Geçerli komutta önemli bir hata oluştu. Varsa, sonuçları atılmalıdır
Bu hata iletisi, ayrıca sistem kataloglar tutarsız meta verileri içeren gösterir.

NotCHECKDB komutu çalıştırarak SQL Server 2000'den yükseltilen veritabanının tutarlılığını denetleyin, sistem kataloglar komut "8992" hata kodu ve rapor tutarsızlıkları döndürebilir. DBCC CHECKDB komutu SQL Server 2000'de DBCC CHECKCATALOG komutu işlevselliğini içermediği için bu davranış oluşur. DBCC CHECKCATALOG komutu çalıştırdığınız sürece bu nedenle, bu sorunları SQL Server 2000'de algılamak değil.

DBCC CHECKDB komutunu kullanma hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesine gidin:
DBCC CHECKDB komutu hakkında genel bilgiler

Referanslar

El ile bir SQL Server sistem tablosu güncelleştirildiğinde oluşan sorunlar hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:

2688307 SQL Server veritabanındaki sistem tablolarında güncelleştirdiğinizde, olay kimliği 17659 ve olay kimliği 3859 kaydediliyor


Özellikler

Makale numarası: 2787112 - Last Review: 4 Şubat 2013 Pazartesi - Gözden geçirme: 3.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Standard
Anahtar Kelimeler: 
kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB2787112 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 2787112

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com