Aracılığıyla paylaş


Yayımcı ve abone veri eşleştir

Yayımcı ve abone veri (veri eşleşmiyor diğer sözcükler) olmayan-convergent değerlendirilir varsa:

  • Yayımcı adresindeki abone adresindeki satırları farklı bir numarası vardır ve yayın filtre uygulanır.yayın süzülür, bu satırların sayısını değişeceğini tahmin edebileceğiniz.

  • Verileri bir veya daha fazla satır Yayımcı ve abone içeriği farklıdır.

Açıklama

Yayımcı ve abone veri olmayan-convergent çeşitli nedenleri olabilir:

  • Verileri salt okunur olarak ele alınması bir Abone tarafında güncelleştirildi.Birleştirme çoğaltması, güncelleştirilebilir abonelikleri ile işlem çoğaltma veya eşler arası işlem çoğaltma kullanmadığınız sürece abonelik veritabanı salt okunur olarak değerlendirilmelidir.

  • Tetikleyiciler Abone tarafında kullanılır.Tetikleyiciler abone adresindeki verileri değiştirebilir ve tetikleyici bir geri alma sorunları, güncelleştirilmiş verileri de engellemek.

  • Komut dosyalarını çoğaltma abone adresindeki ancak Yayımcı tarafından yürütülür.

  • Çoğaltma, saklı yordam bir işlemsel yayım yürütme abone adresindeki farklı sonuçlar üretir.

  • Kısıtlama İhlali veya diğer sorunlar satır eklenen, güncelleştirilen veya Abone tarafında silinmiş önlemek.

Kullanıcı eylemi

Veri olmayan-convergent olup olmadığını ve yakınsama getirmek aşağıdaki eylemleri açıklamaktadır:

  1. Veri olmayan-doğrulama kullanarak convergent olup olmadığını veya tablediff yardımcı programı:

    • Dağıtım Aracısı veya Birleştirme Aracısı çalıştırabilir, veri ikili sağlama toplamı doğrulaması çalıştırarak eksik olup olmadığını belirleyin.Satır sayısı doğrulama de kullanabilirsiniz, ancak bu yöntem farklılıkları verilerin içeriğini göster.Daha fazla bilgi için bkz: Çoğaltılmış veri doğrulama.

    • Dağıtım Aracısı veya Birleştirme Aracısı çalışmıyorsa, verileri çalıştırarak convergent olmayan olup olmadığını tablediff yardımcı programı.Çoğaltılan tablolarda bu yardımcı programı kullanma hakkında daha fazla bilgi için bkz: Nasıl yapılır: Karşılaştır tablolar farkları (çoğaltma programlama) yinelenmiş.

  2. Veri olmayan-convergent ise kullanabilirsiniz tablediff üretmek için yardımcı bir Transact-SQL verileri getirmek için komut dosyasıyakınsama. Daha fazla bilgi için bkz: tablediff yardımcı programı.

Yakınsamanın nedeni olmayan-adresleme

Aşağıdaki eylemleri "Açıklama" listelenen nedenlerden adresi Bölüm:

  • Çoğaltma dışında abone adresindeki veriler güncelleştirilir:

    • Eklemek kullanıcılara izin vermek istiyorsanız, update ve delete veri abone adresindeki birleştirme çoğaltması, güncelleştirilebilir abonelikleri ile işlem çoğaltma veya eşler arası işlem çoğaltma kullanın.Daha fazla bilgi için bkz: Birleştirme çoğaltma genel bakış ve İşlemsel kopyalama için yayın türleri.

    • Kullanıcıların eklemesi engellemek isterseniz, güncelleştirme ve silme abonenin veri tetikleyici rollback sözcüğü içeren ve (önleyen tetikleyici bir işlem çoğaltma aracısı gerçekleştirdiğinde tetikleme) not for REPLICATION seçeneğini kullanan her tablo için oluşturun.Örneğin:

      USE AdventureWorks2008R2;
      GO
      CREATE TRIGGER prevent_user_dml
      ON Person.Address
      FOR INSERT, UPDATE, DELETE
      NOT FOR REPLICATION
      AS
      ROLLBACK;
      

      Daha fazla bilgi için bkz: CREATE TRIGGER (Transact-SQL) ve Denetleme sınırlamaları, kimlikleri ve tetikleyiciler not ile çoğaltma.

  • Tetikleyiciler Abone tarafında kullanılır.Yakınsaması veya başka sorunlara neden olacak şekilde abone adresindeki Tetikleyicileri düzgün yönetiliyor olması gerekir:

    • Birleştirme çoğaltması, güncelleştirilebilir abonelikleri ile işlem çoğaltma veya eşler arası işlem çoğaltma kullanıyorsanız, Tetikleyiciler abone veri değişiklikleri yalnızca sağlamalıdır.Daha fazla bilgi için bkz: Birleştirme çoğaltma genel bakış ve İşlemsel kopyalama için yayın türleri.

    • Çoğu durumda, tetikleyici not for REPLICATION seçeneğini kullanmanız gerekir.Bir izleme içine veri ekleyen bir tetikleyici göz önünde tablo: Kullanıcı ilk satır eklediğinde, güvenlik ve izleme içine bir satır girmek tetikleyici için uygun olan tablo, ancak abone için bu veri çoğaltıldığında izlemede eklenmekte gereksiz bir satır olacak çünkü tetikleyici harekete değil tablo.

      Tetikleyici rollback deyim içerir ve tetikleyici not for REPLICATION seçeneğini kullanmak, bir abone için çoğaltıldığı satırları uygulanmayabilir.

    • İçin işlem çoğaltma, kaydetme ve geri alma ifadeleri de tetikleyici kullanma ve xact_abort ayarı ile ilgili hususlar vardır.Daha fazla bilgi için bkz: "Tetikleyiciler" kısmında İşlemsel kopyalama için dikkat edilmesi gereken noktalar.

  • Komut dosyalarını çoğaltma abone adresindeki ancak Yayımcı tarafından yürütülür.

    The @pre_snapshot_script and @post_snapshot_script parameters of sp_addpublication and sp_addmergepublication allow you to specify scripts to run before and after the snapshot is applied.Daha fazla bilgi için bkz: Önce ve sonra bir Snapshot uygulanan komut dosyalarını çalıştırma.Saklı yordam sp_addscriptexec sayede yürütmek eşitleme işlemi sırasında bir komut dosyası.Daha fazla bilgi için bkz: Nasıl yapılır: Komut dosyaları (çoğaltma Transact-sql programlama) eşitleme sırasında çalıştırma.

    Bu komut dosyaları, genellikle oturumları Abone tarafında ekleme gibi yönetimsel görevleri için kullanılır.Salt okunur olarak ele alınması bir abone veri güncelleştirmek için kullanılan komut dosyaları, yönetici bu yakınsaması neden emin olmanız gerekir.

  • Çoğaltma saklı yordam işlemsel yayım için yürütme abone adresindeki farklı sonuçlar üretir.

    Yürütülmesini çoğalttıysanız bir saklı yordam, yordam tanımı için abone çoğaltılan abonelik başlatıldığında; yordam Yayımcı tarafında çalıştırıldığında, çoğaltma abone adresindeki ilgili yordamı yürütür.Daha fazla bilgi için bkz: İşlem çoğaltma yayımlama saklı yordamı yürütme.

    Saklı yordam farklı veri yayımcı adresindeki abone veya davranır farklı bir eylem gerçekleştirir, sapma durumu oluşabilir.Bir hesaplama gerçekleştirir ve bu hesaplamaya dayalı veri ekleyen bir yordam göz önünde bulundurun.Abone adresindeki hesaplamanın farklı verilere dayanıyorsa, abone süzülmüş, Abone tarafında eklenen sonucu farklı olabilir veya INSERT hiç ortaya çıkabilir.

  • Kısıtlama İhlali veya diğer sorunlar satır eklenen, güncelleştirilen veya Abone tarafında silinmiş önlemek.

    İçin işlem çoğaltma, bir kısıtlama ihlali; hata olarak kabul edilir Varsayılan olarak bunlar bunlar oluşursa eşitlemeyi durdurmak Dağıtım Aracısı neden (Bu hatalar atlanıyor hakkında daha fazla bilgi için bkz: İşlemsel kopyalama hatalar atlanıyor).Mektup birleştirme için çoğaltma, bir kısıtlama ihlali; çakışma kabul edilir günlüğe kaydedilir, ancak eşitlemeyi durdurmak Birleştirme Aracısı neden olmaz.Her iki çoğaltma türünü kısıtlama ihlalleri yakınsaması için bir ekleme, güncelleştirme veya silme tek bir düğüme başarılı olursa yol açabilecek başka başarılı olmaz.

    Tablo yayımlandığında, yabancı anahtar kısıtlamaları ve Kontrol kısıtlamaları oluşturulmasını, varsayılan şema seçeneklerini belirtmek abonelik veritabanı ile not for REPLICATION seçeneği küme.Uygulama kısıtlamaları için farklı ayarlar gerektiriyorsa, şema seçenekleri değiştirin.Daha fazla bilgi için bkz: Nasıl yapılır: Şema seçenekleri (sql Server Management Studio'yu) belirtin ve Nasıl yapılır: Şema seçenekleri (çoğaltma Transact-sql programlama) belirtin.

Ayrıca bkz.

Kavramlar