Aracılığıyla paylaş


Gelişmiş Birleştirme Çoğaltması - Çakışma Algılama ve Çözümleme

Şunlar için geçerlidir: SQL Server

Yayımcı ve Abone bağlandığında ve eşitleme gerçekleştiğinde, Birleştirme Aracısı herhangi bir çakışma olup olmadığını algılar. Çakışmalar algılanırsa, Birleştirme Aracısı hangi verilerin kabul edildiği ve diğer sitelere yayıldığı belirlemek için bir çakışma çözümleyicisi (bir makale yayına eklendiğinde belirtilir) kullanır.

Birleştirme çoğaltması, çakışmaları algılamak ve çözmek için çeşitli yöntemler sunar. Çoğu uygulama için varsayılan yöntem uygundur:

  • Yayımcı ile Abone arasında çakışma oluşursa, Yayımcı değişikliği tutulur ve Abone değişikliği atılır.
  • İstemci aboneliklerini kullanan iki Abone arasında çakışma oluşursa (veri çekme abonelikleri için varsayılan tür), yayımcı ile eşitlenmek üzere ilk Aboneden gelen değişiklik saklanır ve ikinci Aboneden gelen değişiklik atılır. İstemci ve sunucu aboneliklerini belirtme hakkında bilgi için bkz. Birleştirme Aboneliği Türü ve Çakışma Çözümleme Önceliği Belirtme (SQL Server Management Studio).
  • Sunucu aboneliklerini kullanan iki Abone arasında çakışma oluşursa (anında iletme abonelikleri için varsayılan tür), aboneden en yüksek öncelik değerine sahip değişiklik korunur ve ikinci Aboneden gelen değişiklik atılır. Öncelik değerleri eşitse, Yayımcı ile ilk eşitlenen Abone'nin değişikliği korunur.

Uyarı

Abone Yayımcı ile eşitlese de, genellikle bir Abonede ve Yayımcı'da yapılan güncelleştirmeler yerine farklı Abonelerde yapılan güncelleştirmeler arasında çakışmalar oluşur.

Çakışma algılama ve çözümleme davranışı, bu konuda açıklanan aşağıdaki seçeneklere bağlıdır:

  • İster sütun düzeyinde izleme, ister satır düzeyi izleme, ister mantıksal kayıt düzeyi izleme belirtin.

  • İster varsayılan öncelik tabanlı çözüm mekanizmasını ister bir makale çözümleyici belirtin. Makale çözümleyicisi şunlar olabilir:

    • Yönetilen kodda yazılmış bir iş mantığı işleyicisi .
    • COM tabanlı özel çözümleyici.
    • Microsoft tarafından sağlanan COM tabanlı bir çözümleyici.

    Varsayılan çözüm mekanizması kullanılırsa davranış, kullanılan abonelik türüne göre daha fazla belirlenir: istemci veya sunucu.

Çakışma Algılama

Veri değişikliğinin çakışma olarak nitelenip nitelenmediği, makale için ayarladığınız çakışma izleme türüne bağlıdır:

  • Sütun düzeyinde çakışma izlemeyi seçerseniz, aynı satırda birden fazla çoğaltma düğümünde aynı sütunda değişiklikler yapılırsa bu bir çakışma olarak kabul edilir.
  • Satır düzeyi izlemeyi seçerseniz, aynı satırdaki herhangi bir sütunda birden fazla çoğaltma düğümünde değişiklik yapılması çakışma olarak kabul edilir (ilgili satırlarda etkilenen sütunlar aynı olmamalıdır).
  • Mantıksal kayıt düzeyi izlemeyi seçerseniz, aynı mantıksal kayıttaki herhangi bir satırda birden fazla çoğaltma düğümünde değişiklik yapılması çakışma olarak kabul edilir (karşılık gelen satırlarda etkilenen sütunlar aynı olmamalıdır).

Daha fazla bilgi için bkz. Mantıksal Kayıtlarda Çakışmaları Algılama ve Çözme.

Bir makalenin çakışma izleme ve çözüm düzeyini belirtmek için bkz. Birleştirme çoğaltma özelliklerini belirtme.

Çakışma Çözümü

Çakışma algılandıktan sonra, Birleştirme Aracısı seçilen çakışma çözümleyicisini başlatır ve çakışmayı kazananı belirlemek için çözümleyiciyi kullanır. Kazanan satır Yayımcı ve Abone'ye uygulanır ve kaybeden satırdaki veriler çakışma tablosuna yazılır. Çakışmaları etkileşimli olarak çözmeyi seçmediğiniz sürece, çözümleyici çalıştırıldığı anda çakışmalar hemen çözülür.

Çoğaltma Birleştirme Çakışmalarını Çözme

Şunlar için geçerlidir: SQL Server

Yayımcı ve Abone bağlandığında ve eşitleme gerçekleştiğinde, Birleştirme Aracısı herhangi bir çakışma olup olmadığını algılar. Çakışmalar algılanırsa, Birleştirme Aracısı hangi verilerin kabul edileceğini ve diğer sitelere yayılacağını belirlemek için bir çakışma çözümleyicisi kullanır.

Uyarı

Abone Yayımcı ile senkronize olsa da, çakışmalar genellikle bir Abonede ve Yayımcıda yapılan güncellemelerden ziyade farklı Abonelerde yapılan güncellemeler arasında meydana gelir.

Birleştirme çoğaltması, çakışmaları algılamak ve çözmek için çeşitli yöntemler sunar. Çoğu uygulama için varsayılan yöntem uygundur:

  • Yayımcı ile Abone arasında çakışma oluşursa, Yayımcı değişikliği tutulur ve Abone değişikliği atılır.

  • İstemci aboneliklerini kullanan iki Abone arasında çakışma oluşursa (veri çekme abonelikleri için varsayılan tür), yayımcı ile eşitlenmek üzere ilk Aboneden gelen değişiklik saklanır ve ikinci Aboneden gelen değişiklik atılır. İstemci ve sunucu aboneliklerini belirtme hakkında bilgi için bkz. Birleştirme Aboneliği Türü ve Çakışma Çözümleme Önceliği Belirtme (SQL Server Management Studio).

  • Sunucu aboneliklerini kullanan iki Abone arasında çakışma oluşursa (anında iletme abonelikleri için varsayılan tür), aboneden en yüksek öncelik değerine sahip değişiklik korunur ve ikinci Aboneden gelen değişiklik atılır. Öncelik değerleri eşitse, Yayımcı ile ilk eşitlenen Abone'nin değişikliği korunur.

Birleştirme çoğaltması için çakışma algılama ve çözümleme hakkında daha fazla bilgi için bkz. Gelişmiş Birleştirme Çoğaltması Çakışma Algılama ve Çözümleme.

Çözümleyici Türleri

Birleştirme çoğaltmasında, çakışma çözümü öğe düzeyinde gerçekleşir. Birkaç makaleden oluşan yayınlar için, farklı makaleler sunan farklı çakışma çözümleyicileriniz veya bir makale, birkaç makale veya yayını oluşturan tüm makaleleri sunan aynı çakışma çözümleyicisi olabilir.

Varsayılan öncelik tabanlı çakışma çözümleyicisini kullanmayı planlıyorsanız, makalenin çözümleyici özelliğini ayarlamanız gerekmez. Varsayılan çözümleyici yerine bir makale çözümleyicisi kullanmak istiyorsanız, Publisher'da kullanılabilir bir çözümleyici seçerek bunu kullanacak makalenin çözümleyici özelliğini ayarlamanız gerekir. Çözümleyiciye geçirilmesi gereken belirli bilgiler çözümleyici bilgileri özelliğinde de belirtilebilir.

Birleştirme çoğaltması dört tür çakışma çözücüsü sunar.

  • Varsayılan öncelik tabanlı çakışma çözümleyicisi

    Varsayılan çözüm mekanizması, aboneliğin istemci aboneliği mi yoksa sunucu aboneliği mi olduğuna bağlı olarak farklı davranır. Sunucu aboneliklerini kullanan bireysel Abonelere öncelik değerleri atarsınız; en yüksek önceliğe sahip düğümde yapılan değişiklikler çakışmaları kazanır. İstemci abonelikleri için Publisher'a kaydedilen ilk değişiklik çakışmayı çözer.

    Abonelik oluşturulduktan sonra bir türden diğerine değiştirilemez.

  • İş mantığı işleyicisi

    İş mantığı işleyici çerçevesi, birleştirme eşitleme işlemi sırasında çağrılan bir yönetilen kod derlemesi yazmanızı sağlar. Derleme, eşitleme sırasında çakışmalara ve bir dizi başka koşula yanıt verebilen iş mantığı içerir. Daha fazla bilgi için bkz. Birleştirme Eşitlemesi Sırasında İş Mantığı Yürütme.

  • COM tabanlı özel çözümleyici

    Birleştirme çoğaltması, çözümleyicileri Microsoft Visual C++ veya Microsoft Visual Basic gibi dillerde COM nesneleri olarak yazmak için bir API sağlar. Daha fazla bilgi için bkz. COM-Based Özel Çözümleyiciler.

  • Microsoft tarafından sağlanan COM tabanlı çözümleyici

    Microsoft SQL Server, bir dizi COM tabanlı çözümleyici içerir. Daha fazla bilgi için bkz. Microsoft COM-Based Çözümleyicileri.

Uygun çözümleyici türünü seçme hakkında bilgi için bkz. Çözümleyici Seçme.

Uyarı

Bazı makale çözümleyicileri yalnızca belirli işlemler için çakışmaları işlemek üzere yazılır. Örneğin, çözümleyici güncelleştirmeleri işleyebilir, ancak eklemeleri veya silmeleri işleyemez. Varsayılan öncelik tabanlı çakışma çözümleyicisi, makale çözümleyicisi tarafından işlenmeyen çakışmaları işler.

Birleştirme aboneliği türünü ve çakışma çözümleme önceliğini belirtmek için bkz.

Etkileşimli Çözümleyici

Çoğaltma, varsayılan öncelik tabanlı çakışma çözümleyicisi veya makale çözümleyicisi ile birlikte kullanılabilecek bir Etkileşimli Çözümleyici kullanıcı arabirimi sağlar. Microsoft Windows Eşitleme Yöneticisi aracılığıyla isteğe bağlı eşitleme gerçekleştirirken, Etkileşimli Çözümleyici çalışma zamanında çakışma verilerini görüntüler ve çakışmaları çözmeyi seçmenize olanak tanır. Etkileşimli çözümlemeyi etkinleştirme ve Etkileşimli Çözümleyici'yi başlatma hakkında daha fazla bilgi için bkz. Etkileşimli Çakışma Çözümü.

Çakışmaları Görüntüleme

Çakışmaları görüntülemenin en basit yolu, SQL Server Management Studio'dan edinilebilen Çoğaltma ÇakışmaSı Görüntüleyicisi'ni kullanmaktır (SQL Server, çakışma tablolarının sorgulanması için saklı yordamlar da sağlar.). Çakışma Görüntüleyicisi ve Etkileşimli Çözümleyici benzer araçlardır, ancak Etkileşimli Çözümleyici eşitleme gerçekleşirken çakışmaları çözmenize olanak sağlarken, Çakışma Görüntüleyicisi çözümlendikten sonra çakışmaları görüntülemek için tasarlanmıştır. Çakışma meta verileri sistem tablolarında hala kullanılabiliyorsa (çakışma meta verileri varsayılan olarak 14 gün boyunca korunur), Çakışma Görüntüleyicisi'nde çakışma çözümleme sonuçlarını geçersiz kılabilirsiniz, ancak düzenli olarak doğrudan müdahale gerekiyorsa Etkileşimli Çözümleyici'yi kullanmayı göz önünde bulundurun.

Uyarı

Mantıksal kayıtları içeren çakışmalar Çakışma Görüntüleyicisi'nde görüntülenmez. Bu çakışmalarla ilgili bilgileri görüntülemek için replikasyon saklı yordamlarını kullanın. Daha fazla bilgi için bkz. Birleştirme Yayınları için Çakışma Bilgilerini Görüntüleme (Replikasyon Transact-SQL Programlama).

Çakışma Görüntüleyicisi üç sistem tablosundaki bilgileri görüntüler:

  • Çoğaltma, birleştirme makalesindeki her tablo için MSmerge_conflict_<PublicationName>_<ArticleName> biçiminde bir ad taşıyan bir çakışma tablosu oluşturur.

    Çakışma tabloları, temel aldıkları tablolarla aynı yapıya sahiptir. Bu tablolardan birindeki satır, çakışma satırının kayıp sürümünden oluşur (satırın kazanan sürümü gerçek kullanıcı tablosundadır).

  • MSmerge_conflicts_info tablosu, çakışma türü de dahil olmak üzere her çakışma hakkında bilgi sağlar.

  • Sysmergearticles tablosu hangi kullanıcı tablolarında çakışma tabloları olduğunu tanımlar ve çakışma tabloları hakkında bilgi sağlar.

Varsayılan olarak, çakışma bilgileri depolanır:

  • Yayımcı ve Abone'de, yayın uyumluluk düzeyi 90RTM veya daha yüksek olduğu takdirde.

  • Yayıncıda, yayın uyumluluk düzeyi 80RTM'den düşükse.

  • Aboneler SQL Server Compact çalıştırıyorsa Publisher'da. Çakışma verileri SQL Server Compact Abonelerinde depolanamaz.

Çakışmaları görüntülemek için