Aracılığıyla paylaş


Güncelleştirme çakışması algılaması ve çözümlemesi için sıraya alındı

Kuyruğa Alınmış Güncelleştirme Aboneliği aynı verileri birden çok konumlarda yapılan değişiklikler izin vermek için olabilir çakışmaları, Yayımcı tarafında veriler eşitlenir.çoğaltma, değişiklikleri yayımcı ile eşitlendiğinde çakışma algılar ve yayın oluştururken seçtiğiniz çözüm ilkeyi kullanarak bu çakışmaları giderir.Aşağıdaki çakışmaları ortaya çıkabilir:

  • Güncelleştirme ve çakışmaları ekleyin.Bu çakışmayı iki yerlerde aynı verileri değiştirildiğinde oluşur.Bir değişiklik kazanır ve başka bir kaybeder.

  • Çakışmaları silin.Aynı satırda olacak bir konumda silindi ve diğer sırasında bu çakışması ortaya çıkar.

çakışma algılama ve Çözümlemesi, saat ve kaynak yoğun bir işlem olabilir; bu nedenle, farklı veri alt kümelerine farklı aboneleri değiştirmek için veri bölümleri oluşturma uygulama çakışmalarını en aza indirmek iyi değildir.

Çakışma algılama

, Bir yayın oluşturma ve etkinleştirme sıraya güncelleştirme, çoğaltma ekler biruniqueidentifier Varsayılan değer olan temel alınan tablo.newid() sütun ( msrepl_tran_version ) Satır, yayımcı veya abone ya da yayımlanan veriler değiştirildiğinde, yeni bir satır sürüm olduğunu göstermek için yeni bir genel benzersiz tanımlayıcısı (GUID) alır.Queue Reader Agent bu sütun, eşitleme sırasında çakışma olup olmadığını belirlemek için kullanır.

Bir işlem sırasındaki eski ve yeni satır sürüm değerlerini korur.Ne zaman harekete uygulanır yayımcı, alınan GUID ve GUID, yayın karşılaştırılır.Hareket içinde saklanan eski GUID yayında GUID ile eşleşirse, yayın güncelleştirilir ve satır, abone tarafından oluşturulan yeni GUID atanır.Yayın alınan GUID ile güncelleştirerek, eşleşen satır sürümleri yayında ve hareket vardır.

Hareket içinde saklanan eski GUID, GUID eşleşmiyor, yayın, bir çakışma algılandı.Yayında yeni GUID iki farklı satır sürümü bulunduğunu gösterir: bir abone ve varolan Yayımcı. üzerinde yeni bir tane gönderilmesi işlemi Bu durum, önce bu abonelik işlemi eşitlendi: tarih yayındaki aynı satırda başka bir abone veya yayımcısına güncelleştirildi.

Birleştirme çoğaltma, farklı bir GUID sütun kullanımını satır kendisini tanımlamak için kullanılan, ancak satır değişip değişmediğini denetlemek için kullanılır.

Çakışmaları çözme

Kuyruklanmış güncelleme kullanarak bir yayın oluşturduğunuzda, tüm çakışmalar algılanırsa kullanılacak bir çakışma giderici'ı seçin.çakışma giderici Queue Reader Agent, eşitleme sırasında karşılaşılan aynı satırdaki farklı sürümlerini işleme biçimini yönetir.Yayını var olduğu sürece hiçbir yayın abonelik oluşturulduktan sonra çakışma çözümleme İlkesi değiştirebilirsiniz.çakışma giderici seçenekleri şunlardır:

  • Yayımcı wins (varsayılan)

  • Yayımcı kazanır ve abonelik yeniden

  • Abone wins

Çakışma kaydedilir ve çakışma Görüntüleyicisi kullanılarak görüntülenebilir.

İçin küme kuyruğa alınmış güncelleştirme çakışma çözümleme İlkesi

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

Yayımcı Wins

Çakışma çözünürlüğü olduğunda küme için Publisher wins, işlem tutarlılığı en yayımcı verileri esas tutulur.Çakışan işlem başlatan, Abone tarafında geri alınır.

Queue Reader Agent bir çakışma saptanır ve Dengeleme komutlarını üretilen ve abone için dağıtım veritabanına göndererek yayılır.Dağıtım aracı, daha sonra çakışan Hareketin kaynağı abone için karşılayan komutları uygular.Yayımcı satırda eşleştirmek için abone üzerindeki satır Dengeleme eylemlerini güncelleştirin.

Karşılayan komutları uygulanan kadar sonunda geri Abone tarafında alınır bir işlem sonuçlarını okumak mümkündür.Bu, kirli bir okuma (kaydedilmemiş yalıtım düzey okunur) eşdeğerdir.Hiçbir tazminat, sonraki bağlı hareketler için vardır.Ancak, işlem sınırları ödenen ve ya da kabul edilen, işlem içindeki tüm eylemleri olan veya durum geri arasında çelişki.

Yayımcı kazanılan ve abonelik Reinitialized

Reinitializing abone gidermek çakışmaları abone, en katı işlem tutarlılığı sağlar ancak bu olabilir saat alabilir, yayın içeren büyük miktarda veri.

Queue Reader Agent bir çakışma algılarsa, kalan tüm hareketler (işlem, çakışma da dahil) sıra reddedilir ve abone reinitialization için işaretlenir.Yayın için oluşturulan bir sonraki anlık görüntü görüntü abone için dağıtım aracı tarafından uygulanır.

Abone Wins

Çakışma algılama abone wins ilkesi altında Yayımcı wins güncelleştirmek için son abonelik hareketi anlamına gelir.Bu durumda, bir çakışma algıladığında, abone tarafından gönderilen işlem hala kullanılır ve yayımcı güncelleştirilir.Bu ilkeyi olduğu gibi değişikliklerin veri bütünlüğünü tehlikeye değil uygulamalar için uygundur.