Aracılığıyla paylaş


Eşler arası çoğaltma çakışma algılama

Eşler arası işlem çoğaltma sağlar, Ekle, güncelleştirme, veya herhangi bir düğüm topoloji, veri silme ve veri değişiklikleri diğer düğümlere yayılır.Herhangi bir düğümdeki verileri değiştirebilirsiniz, çünkü farklı düğümler adresindeki veri değişiklikleri birbirleriyle çakışıyor.Bir satır birden fazla düğüme değiştirilirse, satır diğer düğümlere yayılır, bir çakışma veya kayıp bir güncelleştirmeyi neden olabilir.

Eşler arası çoğaltma, SQL Server 2008 olanak sağlayan bir seçenek sunmaktadır çakışma algılama boyunca bir eşler arası topoloji.Bu seçenek, algılanmayan çakışmaları tutarsız uygulama davranışı ve kayıp güncelleştirmeler dahil olmak üzere, neden olduğu sorunları önlemeye yardımcı.Bu seçenek etkinleştirildiğinde, varsayılan olarak bir çakışan değişikliği Dağıtım Aracısı başarısızlığın nedenlerini kritik bir hata kabul edilir.De olay veri topolojisi arasında tutarlı yapılan ve çakışma giderilene kadar topoloji çakışması, tutarsız bir durumda kalır.

Not

Olası veri tutarsızlığı önlemek için bile etkin çakışma algılama ile bir eşler arası topoloji çakışmalarını önlemek emin olun.Yazma işlemleri belirli bir satır için yalnızca tek bir düğüme yerine getirilir, erişme ve değiştirme verileri uygulamalar Ekle bölüm gerekir emin olmak için güncelleştirme ve silme işlemleri.Bu bölümleme satır farklı bir düğüm tarafından değiştirilmeden önce tek bir düğüme kaynaklanan belirli bir satıra değişiklikler topolojide diğer tüm düğümlerle eşitlenmesini sağlar.Bir uygulamanın karmaşık çakışma algılama ve Çözümlemesi yetenekleri gerektiriyorsa, birleştirmeyi kullanın çoğaltma.Daha fazla bilgi için bkz: Birleştirme çoğaltma genel bakış ve Çoğaltma çakışması saptama ve çözme Birleştir.

Çakışma anlama ve çakışma algılama

Tek bir veritabanı için aynı satırdaki farklı uygulamalar tarafından yapılan değişiklikler bir çakışma neden olmaz.Çünkü hareketleri sıralanmış ve kilitleri eşzamanlı değişiklikleri yürütmek için kullanılan budur.Bir zaman uyumsuz dağıtılmış sisteminde olduğu gibi eşler arası çoğaltma, hareketleri her düğüm üzerinde birbirlerinden bağımsız hareket ederler; ve birden fazla düğümü hareketlerin seri hale getirmek için bir mekanizma bulunmamaktadır.Bir protokol aşağıdaki gibi iki aşamalı yürütme kullanılabilir, ancak bu önemli ölçüde performansı etkiler.

Değişiklikleri tek tek eş kaydedilmiş olduğunda sistemlerinde olduğu gibi eşler arası çoğaltma, çakışmaları algılanır.Bu değişiklikler çoğaltılır ve diğer eş uygulanan zaman bunun yerine, onlar algılanır.Eşler arası çoğaltma çakışmalarını gizli bir alarak, her düğüm değişiklikleri uygulamak için saklı yordamlar tarafından algılanan sütun yayımlanan her tablo.Bu gizli sütun bir araya getiren bir kimliği depolar bir Gönderen Kimliği , her düğüm ve satır sürüm için belirttiğiniz.Eşitleme sırasında her tablo için yordamlar Dağıtım Aracısı çalıştırır.Bu yordamlar INSERT, update ve diğer eş silme işlemlerini uygulayın.Bir çakışma algılarsa, gizli sütun değeri okuduğunda yordamlardan birini 16 önem düzey olan 22815 hata yükseltir:

A conflict of type '%s' was detected at peer %d between peer %d (incoming), transaction id %s and peer %d (on disk), transaction id %s

Varsayılan olarak, bu düğüme değişiklikleri uygulamadan durdurmak Dağıtım Aracısı bu hataya neden olur."Çakışmalarını işleme" algılanan çakışmalarını işleme hakkında daha fazla bilgi için bkz: Bu konuda daha sonra.

Not

Gizli sütun yalnızca adanmış yönetici bağlantısı (dac aracılığıyla) oturum açmış bir kullanıcı tarafından erişilebilir.dac hakkında daha fazla bilgi için bkz: Adanmış yönetici bağlantısı kullanma.

Eşler arası çoğaltma çakışmaları aşağıdaki türlerini algılar:

  • Ekle ekleme

    Tüm satırların her tablo eşler arası çoğaltma işlemine katılan benzersiz olarak tanımlanır birincil anahtar değerleri kullanarak.Aynı anahtar değeri olan bir satır birden fazla düğüme eklenen bir INSERT ekleme çakışması ortaya çıkar.

  • Güncelleştirme güncelleştirme

    Aynı satır birden fazla düğüme güncelleştirildiği oluşur.

  • INSERT update

    Bir satır tek bir düğüme güncelleştirildiği, ancak aynı satır silindi ve başka bir düğümde yeniden taktıysanız ortaya çıkar.

  • Ekle-Sil

    Tek bir düğüme bir satır silindi, ancak aynı satır silindi ve başka bir düğümde yeniden taktıysanız ortaya çıkar.

  • Güncelleştirme silme

    Bir satır tek bir düğüme güncelleştirildiği, ancak başka bir düğümde aynı satır silindi ortaya çıkar.

  • Sil Sil

    Bir satır birden fazla düğüme silindi oluşur.

Çakışma algılamasını etkinleştirme

Çakışma algılama özelliğini kullanmak için tüm düğümlere çalıştıran SQL Server 2008 veya sonraki bir sürüm; ve tüm düğümleri için algılama etkinleştirilmiş olması gerekir. İçinde SQL Server 2008 ve sonraki sürümlerinde, varsayılan olarak, çakışma algılama etkin olarak SQL Server Management Studio.Algılama, hatta herhangi bir çakışma beklemediğiniz senaryolarda etkin olması önerilir.Çakışma algılama etkin ve kullanılarak devre dışı Management Studio veya Transact-SQL saklı yordamlar:

Çakışmalarını işleme

Eşler arası çoğaltma bir çakışma olduğunda Peer-to-peer conflict detection alert ortaya çıkar.Bir çakışma olduğunda, haberdar olmak için bu uyarı yapılandırmanızı öneririz.Uyarılar hakkında daha fazla bilgi için bkz: Çoğaltma aracısı olayları için uyarıları kullanma.

Neden sonra Dağıtım Aracısı durur ve uyarı oldu, oluştu çakışmaları işlemek için aşağıdaki yaklaşımlardan birini kullanın:

  • Burada çakışması algılandı alınan düğüm yeniden yedek (Önerilen yaklaşım) gerekli verileri içeren düğüm.Bu yöntem, verilerin tutarlı bir durumda olmasını sağlar.Yordamı içinde bir topoloji düğüm eklemek için daha fazla bilgi için bkz: Nasıl yapılır: Eşler arası işlem çoğaltma (çoğaltma Transact-SQL programlama) yapılandırma.

  • Değişiklikleri uygulamak devam etmek Dağıtım Aracısı etkinleştirerek düğüm yeniden eşitlemek aşağıdakileri deneyin:

    1. Yürütme sp_changepublication: belirtmek 'p2p_continue_onconflict' için @property parametre ve true için @value parametresi.

    2. Dağıtım Aracısını yeniden başlatın.

    3. Çakışma Görüntüleyicisi'ni kullanarak algılanan çakışmaları doğrulayın ve kazanan dahil satır ve çakışma türünü saptayın.Çakışma yapılandırma sırasında belirtilen gönderen kimliği değerini temel alan çözümlenir: en yüksek kimlik WINS düğüm adresinde çakışma kaynaklı satır.Daha fazla bilgi için bkz: Nasıl yapılır: İşlem yayınlar (SQL Server Management Studio'yu) için veri çakışmaları görüntüle.

    4. Çakışan satır doğru yakınsadı emin olmak için doğrulama çalıştırın.Daha fazla bilgi için bkz: Çoğaltılmış veri doğrulama.

      Not

      Bu adımdan sonra verileri tutarsız olması durumunda en yüksek önceliğe sahip düğümdeki satırları el ile güncelleştirme ve değişiklikleri bu düğümden yayılmasına olanak verir.Varsa çakışan değişiklikler topoloji, Hayır daha fazla, tüm düğümler için tutarlı bir duruma yaptı.

    5. Yürütme sp_changepublication: belirtmek 'p2p_continue_onconflict' için @property parametre ve false için @value parametresi.

Ayrıca bkz.

Kavramlar