Aracılığıyla paylaş


Algılama ve mantıksal kayıtlar içinde çakışmaları çözme

Bu konu çeşitli birleşimleri çakışma algılama ve çakışma çözümleme yaklaşımları mümkün mantıksal kayıtları kullanırken kapsar.Çakışma ile birleştirme çoğaltması birden fazla düğümün aynı veriler değiştiğinde oluşur veya birleştirme çoğaltması değişiklikleri çoğaltma yapılırken belirli bir kısıtlama ihlali gibi hata türlerini karşılaşır.çakışma algılama ve Çözümlemesi hakkında daha fazla bilgi için bkz: Gelişmiş birleştirme çoğaltma çakışma algılaması ve Çözümlemesi.

Çakışma izleme ve çözümleme düzey belirtmek için birmakale

Çakışma algılama

Çakışmaları mantıksal kayıtlar için algılanan şekilde iki makale özellikleri tarafından belirlenir: column_tracking and logical_record_level_conflict_detection.SQL Server 2005 and later versions also support logical record-level detection."İzleme düzey" satır düzey ve sütun düzeyinde izleme hakkında daha fazla bilgi için bkz: kısmında Birleştirme çoğaltması nasıl algıladığı ve çakışmaları giderir.

The logical_record_level_conflict_detection article property can be set to TRUE or FALSE.Değer yalnızca olmalıdır küme için üst düzey üst makale ve alt makaleleri tarafından göz ardı edilir.Bu değer false ise, birleştirme çoğaltma 'ün önceki sürümleriyle çakışmaları algılar SQL Server, yalnızca değeri temel alınarak column_tracking makale özellik.Bu değer true ise, birleştirme çoğaltma göz ardı eder column_tracking özellik makale ve herhangi bir mantıksal kayıtta değişiklikler yapılırsa çakışma algılamak.Örneğin, bu senaryoyu inceleyin:

Değerler içeren üç tablo mantıksal kaydı

İki kullanıcı Customer2 mantıksal kayıt için herhangi bir değeri değiştirirseniz, bir çakışma algılandığında müşterilerin, siparişleri, veya OrderItems tablolar.Bu örnek bir update deyim ile yapılan değişiklikleri içerir, ancak çakışma da INSERT veya delete deyimleri ile yapılan değişiklikler algıladı.

Çakışma çözünürlüğü

Varsayılan olarak, birleştirme çoğaltma çakışmaları çözmek için öncelik tabanlı mantığı kullanır.Abone veritabanları iki çakışan değişikliği yapılırsa, değişiklik için abone abonelik daha yüksek önceliğe sahip WINS veya Yayımcı ulaşmak için ilk değişiklik önceliği aynı ise, WINS.Satır düzey ve sütun düzey algılama ile kazanan tüm satırı her zaman kayıp satırın üzerine yazar.

The logical_record_level_conflict_resolution article property can be set to TRUE or FALSE.Değer yalnızca olmalıdır küme için üst düzey üst makale ve alt makaleleri tarafından göz ardı edilir.Değer true ise, tüm kazanan mantıksal kayıt kaybeden mantıksal kaydın üzerine yazar.Öyleyse yanlış, tek tek kazanan satır farklı aboneleri veya Yayıncılar gelebilir.Örneğin, a abone satırdan bir çakışması kazanabilirsiniz siparişleri tablo ve abone b ilgili satırdan üzerinde win OrderItems tablosu.Sonuç mantıksal kayıt ile olan siparişleri bir ve Subscriber satırdan OrderItems b. Subscriber satırdan

Etkileşim çakışma çözünürlüğü ve algılama ayarları

Çakışmaları sonucunu çakışma algılama ve çözümlemesi ayarlarını etkileşimine bağlıdır.Aşağıdaki örnekler öncelik tabanlı çakışma çözünürlüğü kullanılmakta olduğunu kabul edilir.Mantıksal kayıtları kullanırken, olasılıkları şunlardır:

  • Satır veya sütun düzey algılama, satır düzey çözünürlüğü

  • Sütun düzey algılama, mantıksal kayıt çözünürlüğü

  • Satır düzey algılama, mantıksal kayıt çözünürlüğü

  • mantıksal kayıt algılama, mantıksal kayıt çözünürlüğü

Satır veya sütun düzeyi algılama, satır düzeyi çözünürlüğü

Bu örnekte, yayın şunlarla yapılandırılır:

  • column_tracking true veya false

  • logical_record_level_conflict_detection yanlış

  • logical_record_level_conflict_resolution yanlış

Bu durumda, satır veya sütunun algılama olan düzey ve çözünürlüğü ise satır sonunda düzey.Bu ayarlar, bir birim olarak, ancak çakışma algılama veya mantıksal kayıt çözünürlüğü mantıksal kayıt replicate yapılan tüm değişiklikler sahip yararlanmak için kullanılan düzey.

Sütun düzeyi algılama, mantıksal kaydı çözünürlüğü

Bu örnekte, yayın şunlarla yapılandırılır:

  • column_tracking true olan

  • logical_record_level_conflict_detection yanlış

  • logical_record_level_conflict_resolution true olan

Yayımcı ve abone ile aynı veri küme başlatın ve mantıksal kayıt arasındaki tanımlı siparişleri ve müşterilerin tablolar.Yayımcı değişiklikleri custcol1 sütun , müşterilerin tablo ve ordercol1 , siparişleri tablosu.Abone değişiklikleri custcol1 'te aynı müşterilerin tablo ve ordercol2 sütun 'te aynı siparişleri tablosu.Aynı değişiklikleri sütun , Müşteri tablo çakışma, ancak yapılan değişiklikler sonucu siparişleri tablo çakışma değildir.

Çakışmaları mantıksal kayıt sırasında çözümlendiği için düzey, Yayımcı tarafında yapılan kazanan değişiklikleri çoğaltma işleme sırasında abone tablolarda yapılan değişikliklerin yerini alır.

İlişkili satırlardaki değişiklikleri gösteren bir dizi tablo

Satır düzeyi algılama, mantıksal kaydı çözünürlüğü

Bu örnekte, yayın şunlarla yapılandırılır:

  • column_tracking yanlış

  • logical_record_level_conflict_detection yanlış

  • logical_record_level_conflict_resolution true olan

Yayımcı ve abone ile aynı veri küme başlatın.Yayımcı değişiklikleri custcol1 sütununda müşterilerin tablo.Abone değişiklikleri custcol2 , müşterilerin tablo ve ordercol2 sütun , siparişleri tablo.Aynı satırda değişiklik müşterilerin tablo sonucu bir çakışma, ancak abone değişikliklerini siparişleri tablo çakışma değildir.

Çakışmaları mantıksal kayıt sırasında çözümlendiği için düzey, eşitleme sırasında Yayımcı tarafında yapılan kazanan değişiklikleri abone tablolarda yapılan değişiklikleri değiştirin.

İlişkili satırlardaki değişiklikleri gösteren bir dizi tablo

Mantıksal kaydı algılama, mantıksal kaydı çözünürlüğü

Bu örnekte, yayın şunlarla yapılandırılır:

  • logical_record_level_conflict_detection true olan

  • logical_record_level_conflict_resolution true olan

Yayımcı ve abone ile aynı veri küme başlatın.Yayımcı değişiklikleri custcol1 sütununda müşterilerin tablo.Abone değişiklikleri ordercol1 sütununda siparişleri tablo.Aynı satır veya sütun, herhangi bir değişiklik vardır, ancak, aynı mantıksal kaydında yapılan değişiklikler nedeniyle custid= 1, değişiklikler sırasında mantıksal kayıt çakışma olarak algılanır düzey.

Çakışmaları mantıksal kayıt sırasında da çözülür, çünkü düzey, eşitleme sırasında Yayımcı tarafında yapılan kazanan değişiklik abone tablolarda yapılan değişikliği değiştirir.

İlişkili satırlardaki değişiklikleri gösteren bir dizi tablo