KB2733630 - SQL Server'da birleştirme çoğaltması eşitlemesi sırasında birleştirme aracısı başarısız olabilir

Uygulandığı Öğe
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Parallel Data Warehouse SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2008 Standard SQL Server 2008 Web SQL Server 2008 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use)

Belirtiler

Microsoft SQL Server 2008 ve sonraki SQL Server sürümlerinde birleştirme çoğaltmasının eşitlenmesi sırasında, birleştirme aracısı başarısız olabilir. Ayrıca, aşağıdaki hata iletisini alırsınız:

Not

Birleştirme Aracısı, bekletme tabanlı meta veri temizlemenin henüz Yayımcıya gönderilmemiş değişiklikler için Abonedeki meta verileri sildiğini algıladıktan sonra başarısız oldu. Aboneliği yeniden başlatmanız gerekir (karşıya yüklemeden). (Kaynak: MSSQL_REPL, Hata numarası: MSSQL_REPL-2147199401)

Yardım alma: http://help/MSSQL_REPL-2147199401

Bu sorun birden fazla nedenle oluşabilir. Bunlar, belirli koşullar altında beklenen birçok nedeni içerir. Bu hatayla beklenmedik bir şekilde karşılaşıp karşılaşmadığınızı belirlemek için "Neden" bölümünde açıklanan meta veri ayrıntılarını inceleyin.

Neden

Bu sorunun nedeni, aboneyle ilgili aşağıdaki sistem tablolarında bulunabilir:

  • dbo.sysMergeSubscriptions
  • dbo. MsMerge_Genhistory

Birleştirme aracısının artık eşitlenmediğinden emin olun. Daha sonra, aşağıdaki sorguyu çalıştırın ve sonuçları inceleyin:

select sentgen from SubscriberDB.dbo.sysMergeSubscriptions where pubid = subid and sentgen is not null

Sorgu sonuçları

Sentgen sütunu, abonenin yayımcıya gönderdiği en eski değişiklik grubunu işaretler. Birden çok değer döndürülürse, doğru yayının meta verilerini görüntülediğinizden emin olmak için dbo.sysMergeSubscriptions tablosundaki diğer sütunları inceleyin. Ardından, bu sorgunun döndürdüğü değeri aşağıdaki sorguda kullanın:

select top 20 * from SubscriberDB.dbo.MSmerge_genhistory where generation >= sentgen_value order by generationSorgunun çıktısı aşağıdaki gibi olmalıdır:

Nesillere göre sorgu sonucu

Aşağıdaki koşulların tümü geçerli olduğunda beklenmedik bir şekilde hatayla karşılaşabilirsiniz:

  • İlk satırdaki oluşturma sütunundaki değer, önceki sorgudaki sentgen değerinden biraz daha büyük.
  • genstatus sütunundaki değer 4'tür.
  • Değişiklik sayısı sütunundaki değer 0'dır.

Not İlk satırın coldate sütununun değeri de, genellikle diğer satırlardaki sütunun değerinden çok daha eskidir.

Çözüm

Bu sorunu çözmek için, hataya neden olan aboneyi yeniden başlatın.

Bazı senaryolarda, yeniden başlatmayı tamamlamadan bu sorunu çözmeniz mümkün olabilir. Olası geçici çözüm hakkında bilgi için Microsoft Müşteri Destek Hizmetleri'ne başvurun.

Bu sorunun gelecekte oluşmasını önlemek için, SQL ServerSQL Server sürümünüze bağlı olarak aşağıdaki düzeltmelerden birini uygulayın.

Toplu güncelleştirme bilgileri

SQL Server 2008

SQL Server 2008'de bu sorun için bir düzeltme yoktur.

SQL ServerSQL Server 2008 R2 Service Pack 2

Bu soruna yönelik düzeltme ilk olarak Toplu Güncelleştirme 3'te yayınlandı. SQL Server 2008 R2 Service Pack 2 için bu toplu güncelleştirme paketini edinme hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:

2754552 SQL Server 2008 R2 Service Pack 2 için Toplu Güncelleştirme Paketi 3
 Not Derlemeler birikimli olduğundan, her yeni düzeltme önceki SQL Server 2008 R2 Service Pack 2 düzeltme sürümüne eklenmiş olan tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Bu düzeltmeyi içeren en son düzeltme sürümünü uygulamayı düşünmenizi öneririz. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:

2730301 SQL Server 2008 R2 Service Pack 2 yayımlandıktan sonra yayımlanan SQL Server 2008 R2 derlemeleri

SQL Server 2012

Bu soruna yönelik düzeltme ilk olarak Toplu Güncelleştirme 4'te yayınlandı. Bu SQL Server 2012 toplu güncelleştirme paketini edinme hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:

2758687 SQL Server 2012 Toplu Güncelleştirme Paketi 4
 Not Derlemeler birikimli olduğundan, her yeni düzeltme önceki SQL Server 2012 düzeltme sürümüne dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Bu düzeltmeyi içeren en son düzeltme sürümünü uygulamayı düşünmenizi öneririz. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:

2692828 SQL Server 2012 yayımlandıktan sonra yayımlanan SQL Server 2012 derlemeleri

SQL ServerSQL Server 2008 R2 Service Pack 1

Bu soruna yönelik düzeltme ilk olarak Toplu Güncelleştirme 8'de yayınlandı. SQL Server 2008 R2 Service Pack 1 için bu toplu güncelleştirme paketini edinme hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:

2723743 SQL Server 2008 R2 SP1 için Toplu Güncelleştirme Paketi 8Note Derlemeler birikimli olduğundan, her yeni düzeltme önceki SQL Server 2008 R2 Service Pack 1 düzeltme sürümüne eklenmiş olan tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Bu düzeltmeyi içeren en son düzeltme sürümünü uygulamayı düşünmenizi öneririz. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:

2567616 SQL Server 2008 R2 SP1'den sonra yayımlanan SQL Server 2008 R2 derlemeleri