Belirtiler

Aşağıdaki senaryoyu inceleyin:

  • Microsoft SQL Server 2014 ' de iki bölümlenmiş tablonuz vardır ve ilk tablonun bölümleri, aynı bölüm düzeni ve işlevi kullanılarak farklı dosya ve dosya gruplarına eşleştirilir.

  • Bu bölümlerden birini ikinci tabloya değiştirdiğinizde ikinci tabloyu kesmektir.

  • Anahtarlı bölüme eşlenmiş dosyaları ve dosya gruplarını siz bırakın.

  • İkinci tabloda SELECT deyimini çalıştırırsınız.

Bu senaryoda, aşağıdaki hata iletisini alırsınız:

İleti 606, düzey 21, durum 1Meta veri tutarsızlığı. <tablo <tablo> adı için belirtilen> dosya grubu kimliği DBCC CHECKDB veya CHECKCATALOG 'u çalıştırın.

DBCC CHECKDB/CHECKTABLE çalıştırdığınızda, aşağıdaki hata iletisini alırsınız:

Dosya grubu (dosya grubu KIMLIĞI <Filegroupnumber>) geçersiz olduğundan tablo <TableName>> dizini <Dizin adı işlenemiyor.

Çözüm

Sorun ilk olarak SQL Server 'ın aşağıdaki toplu güncelleştirmelerinde giderilmiştir:

Her bir SQL Server toplu güncelleştirmesi, önceki toplu güncelleştirmeyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. En son SQL Server güncelleştirmelerini indirip yüklemenizi öneririz:

Not Bu düzeltme, bu sorunun gelecekteki oluşumlarını engeller. Bu sorunla karşılaşıyorsanız, mevcut meta veri bozulması olmadan verilerinizi yeni bir veritabanına aktarın. Bunu yapmak için şu adımları izleyin:

  1. Bir bölümün geçersiz bir dosya grubuna sahip olup olmadığını belirlemek için, aşağıdaki sorguyu çalıştırıp bir sonuç verip vermediğini görün:

    SELECT * FROM sys.allocation_units AS au WHERE au.data_space_id NOT IN (SELECT data_space_id FROM sys.filegroups)
  2. Meta veri bozulmasını içeren tabloyu yeniden görüntülenebilir hale getirin. Adım 1 ' den gelen sorgu sonuç döndürürse, bozuk metaveri içeren bölüm, tablodaki herhangi bir satırı görüntülemenizi (* Kimden) engeller. Bu sorunu geçici olarak çözmek için, bu bozuk bölümü kaldırın.Not Bozuk bölüm boş olmalıdır. Aksi takdirde, içerdiği dosyalar ve dosya grubu bırakılmamış veya silinmemiş olabilir. Bunu yapmak için, bu bölümü aynı bölümleme düzenini kullanan başka bir tabloya taşıyın. Bu tablo yalnızca kukla bir tablo olabilir. Adım 1 ' deki sorgudan container_id kullanın ve bunu sys. partitions 'dan partition_id ile eşleştirin. (Partition_number not aldığınızdan emin olun.) Bir tablo değiştirmek için partition_number kullanarak, tablodan beklenmeyen tablo DEĞIŞTIRME bölümü. Kukla tabloda aynı sütun kümesi bulunmalıdır ve aynı bölüm düzeni kullanılmalıdır. Tutarsız bölümü bulmak için sorgunuz şuna benzeyebilir:

    SELECT au.container_id, au.data_space_id, p.partition_number FROM sys.partitions AS p JOIN sys.allocation_units AS au ON p.partition_id = au.container_id LEFT JOIN sys.filegroups AS fgs ON fgs.data_space_id = au.data_space_id WHERE object_id = OBJECT_ID('MyTableName') AND fgs.data_space_id IS NULL;
  3. Önceden görüntülenebilen tablodan verileri yeni veritabanına kopyalayın.

Durum

Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin

Eğitimleri keşfedin >

Yeni özellikleri ilk olarak siz edinin

Microsoft Insider’a katılın >

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?

Geri bildiriminiz için teşekkürler!

×