Aracılığıyla paylaş


Birleştirme çoğaltması nasıl izler ve değişiklikleri numaralandırır.

yayın veya abonelik başlatıldı sonra birleştirme çoğaltma izler ve tüm değişiklikleri yayımlanmış olan tablolardaki verileri numaralandırır.Değişiklikler, Tetikleyicileri (hangi çoğaltma, yayımlanan her tablo için oluşturur) ve sistem tabloları'nın yayım ve abonelik veritabanlarındaki izlenir.Bu çoğaltma sistem tabloları, hangi değişikliklerin bulaşan gösteren meta veriler ile doldurulur.Birleştirme Aracısı, eşitleme sırasında çalıştığında, değişiklikler Aracısı tarafından numaralandırılan ve gerekirse uygulanan sonra yayımcı ve abone.

Değişiklik izleme

Birleştirme çoğaltma, yayımlanmış olan tüm tablolar için değişiklikleri izlemek için sistem tabloları ve aşağıdaki Tetikleyicileri kullanır:

  • MSmerge_ins_<guid>: (Bu ve diğer Tetikleyiciler GUID değerini elde edilen Tetikleyici Eklesysmergearticles)

  • MSmerge_upd_<guid>: tetikleyiciyi Güncelleştir

  • MSmerge_del_<guid>: tetikleyici silme

  • MSmerge_contents

  • MSmerge_tombstone

  • MSmerge_genhistory

Çoğaltma kullanır süzülmüş tablolar için değişiklikleri izlemek için aşağıdaki ek sistem tabloları birleştirme:

  • MSmerge_partition_groups

  • MSmerge_current_partition_mappings

  • MSmerge_past_partition_mappings

Not

Sistem tabloları, listelenen tüm birleştirme yayımları ve bir veritabanı; bir yayında birden çok örneği varsa, abonelikler tarafından kullanılan bir yayın veritabanı, MSmerge_contents makalelerinden tüm yayınlarda satırlar içerir.

Değişiklik Süzgeçlenmemiþ tablolarından izleme

Sistem tabloları

Filtre uygulanmamış ve süzülmüş tablolar için kullanılan sistem tabloları aşağıdaki meta veriler içerir:

  • MSmerge_contents bir yayımlanmış güncelleştirilen veya araya her satır için bir satır içeren tablo veritabanındaki.

  • MSmerge_tombstone yayımlanmış silinmiş olan her satır için bir satır içeren tablo veritabanındaki.

  • MSmerge_genhistory , her oluşturmak için bir satır içerir.Bir oluşturma, Yayımcı veya abonelik için teslim değişiklikleri topluluğudur.Verirken olur. Kapalı her Birleştirme Aracısı çalışır; bir veritabanındaki sonraki değişiklikler eklenen bir veya daha fazla içinverirken açın..

Değişiklik izleme işlemi

Filtre uygulanmamış tüm tablolar için kullanılan izleme işlemini aşağıdaki değişiklik:

  • Bir ekleme veya güncelleştirmesi yayımlanmış bir üzerinde olduğunda tablo, MSmerge_ins_<guid> veya MSmerge_upd_<guid> geçirilir, tetikleyici ve bir satır eklenir MSmerge_contents sistem tablo. The rowguid sütun of MSmerge_contents contains the GUID for the inserted or updated row, indicating that the next saat synchronization occurs, the corresponding inserted or updated row in the user tablo should be sent to the Yayımcı or Subscribers.Bundan sonraki güncelleştirmeleri bir kullanıcı bir satırda oluşur, tablo, satırda MSmerge_contents bu yansıtacak biçimde güncelleştirildi.

  • Yayımlanmış bir tablo üzerinde bir silme ortaya çıktığında MSmerge_del_<guid> geçirilir, tetikleyici ve bir satır eklenir MSmerge_tombstone sistem tablosu. The rowguid sütun of MSmerge_tombstone contains the GUID for the deleted row, indicating that the next saat synchronization occurs, a delete should be sent to the Yayımcı or Subscribers for the corresponding deleted row in the user tablo.Silinen satır başvurulan, MSmerge_contents Bunu takılı olduğundan (veya son eşitleme işleminden sonra güncelleştirildi), satır silinir MSmerge_contents.

Filtre uygulanmış tablolarından izleme değiştirme

Sistem tabloları

Önceki bölümde açıklanan sistem tablolarına ek olarak Yayın veritabanındaki üç tablo süzülmüş tablolar için değişiklik izleme için meta veriler içerir:

  • MSmerge_partition_groups Yayında tanımladığınız her bölüm için bir satır içerir.Bölümler aşağıdaki gibi olabilir:

    • Açık olarak kullanarak, tanımlı sp_addmergepartition or the Veri bölümleri sayfa yayın Özellikleri iletişim kutusunun.

    • Henüz bir girdi yok bölüm abone gerektirmesi durumunda, bir abone eşitlerken, otomatik olarak oluşturuldu MSmerge_partition_groups.

  • MSmerge_current_partition_mappings satırların benzersiz her birleşimi için bir satır içerir.MSmerge_contents and MSmerge_partition_groups.Örneğin, bir kullanıcı bir satır, tablo iki bölüm için ait ve satır güncelleştirildiği için bir satır eklenir MSmerge_contents iki satır ve güncelleştirmeyi yansıtacak şekilde eklenmişMSmerge_current_partition_mappingsgüncelleştirilen satır için iki bölümleri ait olduğunu belirtmek için.

  • MSmerge_past_partition_mappings artık belirli bir bölüme ait olan her satır için bir satır içerir.Bir satır, bir bölüm varsa taşır:

    • Satır silinir.Bir kullanıcının bağlantısını bir satır silinmişse tablo, bir satır eklenir MSmerge_tombstone ve bir veya daha çok satır eklenir MSmerge_past_partition_mappings.

    • Süzmek için kullanılan bir sütun değeri değişti.Parametreli hale getirilmiş bir süzgeç, bir şirket ofisleri ve şirket hareket durumu esas alıyorsa, örneğin şirket için bir satır (ve diğer tablolardaki ilgili satırları) satış bir kişinin veri bölümü dışında bölüm için başka bir satışçının hareket.Artık bir bölüme ait olduğu gibi bir satırı güncelleştirilirse, satır eklendiğinde veya güncelleştirilir MSmerge_contents ve bir veya daha çok satır eklenir MSmerge_past_partition_mappings.

Not

Bir abonelik ile örtüşmeyen bölümler (bir değeri partition, 3 for the @ partition_options parametresisp_addmergearticle) olan kullanıldığında, sistem tabloları MSmerge_current_partition_mappings and MSmerge_past_partition_mappings , çünkü her satır tek bir bölüme ait olduğu ve yalnızca bir Abone tarafında değiştirilebilir satırları bölümü eşlemeler, izlemek için kullanılmaz.

Değişiklik izleme işlemi

Filtre uygulanmamış tablolar için (içinde bölümü "değişiklik izleme için Süzgeçlenmemiþ tabloları") açıklanan işlem, süzülmüş tabloyla aşağıdaki eklemeleri için de kullanılır:

  • Bir ekleme yayımlanmış oluştuğunda tablo, güncelleştirilen veya eklenen verilere ek olarak MSmerge_contents, bir bölümü eşleme eklenen içinMSmerge_current_partition_mappings satırın ait olduğu her bölüm için.

  • Bir güncelleştirme olduğunda güncelleştirildi veya eklenen verilere ek olarak yayımlanmış bir tabloda MSmerge_contentsbir bölüm eşlemesi yoksa MSmerge_current_partition_mappings satırın ait olduğu her bölüm için bir tane eklenir.Güncelleştirme, bir bölümden diğerine taşınmasını satırda sonuçlandı, satır güncellenir MSmerge_current_partition_mappings ve bir için eklenirMSmerge_past_partition_mappings.

  • Bir silme yayımlanmış oluştuğunda tablo, içine eklenen bir satırın yanında MSmerge_tombstone , satır silindiMSmerge_current_partition_mappings ve bir için eklenirMSmerge_past_partition_mappings.

Değişiklik numaralandırma

sistem tabloları ve yordamlar

Birleştirme aracı çalıştığında, sistem tabloları ve saklı yordamlar sayısını kullanarak değişiklikleri numaralandırılmıştır:

  • MSmerge_genhistory , her oluşturmak için bir satır içerir.Bir oluşturma, Yayımcı veya abonelik için teslim değişiklikleri topluluğudur.Verirken olur. Kapalı her Birleştirme Aracısı çalışır; bir veritabanındaki sonraki değişiklikler eklenen bir veya daha fazla içinverirken açın..

  • sysmergesubscriptions düğüm gönderilen ve alınan değişiklikleri bir son nesil kaydını da dahil olmak üzere, abonelikleri hakkında bilgi içerir.yayın veritabanında bu tablo her abone için yayımcı ve bir satır için bir satır içerir.Içinde bir abonelik veritabanı, bu tablo genelde bir satır abone ve bir satır için yayımcı içerir.

  • MSmerge_generation_partition_mappings , belirli bir üretim için belirli bir bölümü ile ilgili herhangi bir değişiklik olup olmadığını kaydı yalnızca süzülmüş tablolar için kullanılır.Bu tablo yayında veritabanı satırların benzersiz her birleşimi için bir satır içerir. MSmerge_genhistory and MSmerge_partition_groups.

  • sp_MSmakegeneration tüm açık nesil numaralandırma işleminin başında kapatır.

  • sp_MSenumchanges (bir sayı olan ilgili yordamların ile başlayan adları tablolar için değişiklik numaralandırır.sp_MSenumchanges de kullanılır bu işlem).

  • sp_MSgetmetadata bir değişiklik bir düğümden başka bir düğümde bir ekleme, güncelleştirme veya silme gibi uygulanması gereken olup olmadığını belirler.

Numaralandırma işlemi değiştirme

Aşağıdaki işlem değişiklik numaralandırma sırasında oluşur:

  1. Sistem yordamını sp_MSmakegeneration adında:

    • Filtre uygulanmamış ve süzülmüş tabloları için bu yordamın başvurulan tüm açık nesil kapatır. MSmerge_genhistory (bir değeri kapalı nesil vardır.1 or 2 sütungenstatus).

    • Süzülmüş tablo için s, bu yordamı, sistem doldurur tablo MSmerge_generation_partition_mappings.Bir üretim için bir bölümü ile ilgili bir veya daha çok değişiklik varsa, sisteme bir satır eklenir tablo.Bir oluşturma için belirli bir bölümü ile ilgili herhangi bir değişiklik yoksa, bir satır eklenir. MSmerge_generation_partition_mappingsve değişiklikler, bölümün aldığınız tüm abonelere yönelik numaralandırılır.

  2. Saklı yordam sp_MSenumchanges ve ilgili yordamlar denir.Bu yordamlar, son saat eşitlemesi oluştu bu yana oluşan değişiklikleri numaralandırılamıyor:

    1. Yordamlar, üretimi hangi numaralandırma, sütunlar temel alınarak başlatır, en önce belirleyin sentgen (gönderilen son kuşak) ve recgen (alınan son kuşak) tablosusysmergesubscriptions.

      Örneğin, ne zaman hangi nesil değişiklikleri belirlemek için belirli bir abone, numaralandırılmış gerekir sentgen abone için (depolanan yayın veritabanı) ve recgen (abonelik veritabanında depolanan) abone için karşılaştırılır.Değerleri (belirten yayımcıdan gönderilen son oluşturmayı abone başarıyla alındı) aynıysa, değişiklikler sonraki nesli başlayarak numaralandırılır MSmerge_genhistory.Değerleri aynı değilse, iki değerleri gönderilen tüm gerekli değişiklikleri sağlamak için kullanılır.

    2. Yordamlar, sonra değişiklikleri numaralandırılamıyor:

      Filtre uygulanmamış tabloları için oluşturma sonra nesil bulunan tüm değişiklikleri sentgen or recgen numaralandırılan: MSmerge_genhistory için birleştirilirMSmerge_contents and MSmerge_tombstone hangi değişiklikleri belirlemek için olan düzeltme gönderilmelidir.

      Süzülmüş tabloları için MSmerge_generation_partition_mappings eklenir: MSmerge_current_partition_mappings and MSmerge_contents; and MSmerge_past_partition_mappings and MSmerge_tombstone hangi değişikliklerin abone alan bölümü ile ilgili olduğunu belirlemek için.

  3. Saklı yordam sp_MSgetmetadata olarak adlandırılan bir değişiklik ekleme, uygulanması gereken olup olmadığını belirlemek için güncelleştirme veya silme.Bu noktada, çakışma algılama ve Çözümlemesi gerçekleştirilir; daha fazla bilgi için bkz: Birleştirme çoğaltması nasıl algılıyor ve çakışmaları çözümler..