Aracılığıyla paylaş


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

Sildiğiniz ekleme, güncelleştirme veya herhangi bir düğümde topolojisinde veri ve veri değişikliklerini sahip eşler arası işlem çoğaltma sağlar, diğer düğümlerin bulaşan.Herhangi bir düğümde veri geçebileceğiniz için veri değişiklikleri farklı düğümlerin adresindeki birbirleri ile çakışıyor.Bir satıra birden çok düğümde değiştirilirse, satır, diğer düğümlere yayılır, onu bir çakışma veya kaybolmuş bir güncelleştirme bile neden olabilir.

Eşler arası çoğaltmada SQL Server 2008 bir eşler arası topoloji arasında çakışma algılamasını etkinleştirmek için bu seçeneği sunar. Bu seçenek algılanmayan çakışmaları, tutarsız uygulama davranışlarını ve kayıp güncelleştirmeleri de dahil olmak üzere neden olduğu sorunları engellemeye yardımcı olur.Bu seçeneğin etkinleştirilmiş, varsayılan olarak bir çakışan değişikliği dağıtım aracısını başarısızlığın neden önemli bir hata kabul edilir.Çakışma durumunda, çakışmanın giderilip ve verileri topoloji arasında tutarlı hale kadar topoloji tutarsız bir durumda kalır.

Not

Olası veri tutarsızlığına önlemek için , bile etkin çakışma algılama ile eşler arası topolojide çakışmaları önlemek dikkat edin.Yazma işlemleri belirli bir satır için yalnızca bir düğümde gerçekleştirilir, uygulamalar erişmek ve veri değiştirme, ekleme partition gerekir emin olmak için , güncelleştirme ve silme işlemlerine.Bu bölme, farklı bir düğüm tarafından satır değiştirilmeden önce değişiklikleri bir düğümde kaynaklanan belirli bir satıra topolojide diğer tüm düğümlerle eşitlenmesini sağlar.Bir uygulama, karmaşık çakışma algılama ve Çözümlemesi yetenekleri gerektiriyorsa, birleştirme çoğaltma kullanın.Daha fazla bilgi için bkz: Birleştirme çoğaltması genel bakış ve Saptama ve çözme çoğaltma çakışması Birleştir.

Anlama çakışmaları ve çakışma algılama

Tek bir veritabanı için aynı satırdaki farklı uygulama tarafından yapılan değişiklikler bir çakışma neden olmaz.Bunun nedeni, hareketlerin seri hale getirilmiş ve kilitleri eşzamanlı değişiklikleri işlemek için kullanılan olmasıdır.Zaman uyumsuz bir dağıtılmış sistemi gibi eşler arası çoğaltma işlemleri her düğüm üzerinde birbirlerinden bağımsız hareket ederler ve birden çok düğüm üzerinde hareketleri seri hale getirmek için bir mekanizma bulunmamaktadır.Benzer iki aşamalı yürütme protokol kullanılabilir, ancak bu performansı önemli ölçüde etkiler.

Tek tek bir eş sırasında değişiklikleri kabul edilendir, eşler arası çoğaltma gibi sistemlerinde, çakışmaları algılanmaz.Bu değişiklikler çoğaltılır ve diğer eş sırasında uygulanan bunun yerine, bunlar algılanır.Içinde eşler arası çoğaltma, çakışmaları, yayımlanan her tablo, gizli sütun temel alan her bir düğümde, değişiklikleri uygulamak için saklı yordamlar tarafından algılanır.Bu gizli sütun birleştiren bir KIMLIK saklayan bir iletiyi gönderen KIMLIĞI Her düğüm ve satır sürüm için belirttiğiniz. Eşitleme sırasında yordamlar, her tablo için dağıtım aracısını yürütür.Bu yordamlar, ekleme, güncelleştirme ve silme işlemlerini diğer eş uygulanır.Bir çakışma algılarsa, Gizli sütun değeri okuduğunda yordamlardan 16 bir önem düzey 22815 hata harekete Geçiren:

'% S' türündeki BIR çakışma eş %d arasında bir eş %d (gelen), işlem kimliği: %s eşinde %d (disk), işlem kimliği: %s sırasında algılandı

Varsayılan olarak, bu hata, dağıtım aracı bu düğüme değişiklikleri uygulamadan durmasına neden olur.Algılanan çakışmaları nasıl baş edebileceğiniz konusunda daha fazla bilgi için bu konuda daha sonra "İşlem çakışması") konusuna bakın.

Not

Gizli sütun, yalnızca özel yönetici bağlantısı'den (DAC) günlüğe bir kullanıcı tarafından erişilebilir.DAC hakkında daha fazla bilgi için bkz: Bir özel yönetici bağlantısı kullanma.

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

  • Ekle ekleme

    Katılma, her tablodaki tüm satırların eşler arası çoğaltma birincil anahtar deðerleri kullanarak benzersiz olarak tanımlanır.Aynı anahtar değeri ile bir satırın birden çok düğümde eklenmiş bir ekle ekleme çakışması oluşur.

  • Güncelleştirme güncelleştirme

    Aynı satıra birden çok düğümde güncelleştirildiği sırada oluşur.

  • Ekleme ve güncelleştirme

    Bir satır, bir düğümde güncelleştirildi, ancak aynı satır silindi ve sonra da başka bir düğümde reinserted oluşur.

  • Ekleme ve silme

    Bir satır, bir düğümde silindi, ancak aynı satır silindi ve sonra da başka bir düğümde reinserted oluşur.

  • Güncelleştirme ve silme

    Bir satır, bir düğümde güncelleştirildi, ancak aynı satırdaki başka bir düğümde silindi oluşur.

  • Sil Sil

    Bir satırın birden çok düğümde sildiğinizde ortaya çıkar.

Çakışma algılama etkinleştirme

Çakışma algılama özelliğini kullanmak için , tüm düğümlerin çalıştırıyor olmanız gerekir SQL Server 2008 veya sonraki sürüm ve algılama, tüm düğümler için etkinleştirilmiş olmalıdır. Içinde SQL Server 2008 ve sonraki sürümlerinde, varsayılan olarak, çakışma algılama etkinleştirilmişse SQL Server Management Studio. Algılama, çakışmaları düşünmüyorsanız senaryolarda bile etkin olmasını öneririz.Çakışma algılama etkinleştirilmiş ve olması kullanarak devre dışı Management Studio veya Transact-SQL saklı yordamlar:

Çakışmalarını işleme

Eşler arası çoğaltmada bir çakışma ortaya çıktığında, eşler arası çakışma algılama uyarı oluşturulur.Böylece çakışma meydana geldiğinde size bildirilir, bu uyarı yapılandırmanız önerilir.Uyarılar hakkında daha fazla bilgi için bkz: Çoğaltma aracısı olayları için uyarıları kullanma.

Sonra Dağıtım Aracısı durur ve uyarı geçirilen, ortaya çıkan çakışmaları işlemek için aşağıdaki yaklaşımlardan birini kullanın:

  • Çakışmayı gelen algılandı düğüm yeniden yedek (önerilen yaklaşım) gerekli veriyi içeren düğüm.Bu yöntem, veri, tutarlı bir durumda olmasını sağlar.Daha fazla bilgi için bkz: bir topolojisinde bir düğüm eklemek için bu yordamı Nasıl Yapılır: Eşler işlemsel kopyalama (çoğaltma Transact-SQL programlama) yapılandırın..

  • Değişiklikleri uygulamak, devam etmek dağıtım Aracı'nı etkinleştirerek düğüm yeniden eşitlemeyi deneyin:

    1. yürütmek sp_changepublication: ve @ özellik parametresi için ' p2p_continue_onconflict' belirtintrue @ değer parametre için.

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

    3. Çakışma Görüntüleyicisi'ni kullanarak algıladı çakışmaları doğrulayın ve söz konusu satırları, çakışmanın türü ve kazanan belirler.Konfigürasyonu sırasında belirttiğiniz iletiyi gönderen KIMLIĞI değerini temel alan çakışmanın giderilip: en yüksek KIMLIK wins düğümüyle çakışmayı kaynaklanan bir satır. Daha fazla bilgi için bkz: Nasıl Yapılır: Işlem yayınlar (SQL Server Management Studio'yu) için görünümü veri çakışmaları.

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

      Not

      Bu adımdan sonra verileri tutarsız durumda, el ile satır en yüksek önceliğe sahip düğümde güncelleştirin ve sonra değişiklikleri bu düğümden yayılmasına izin gerekir.Varsa topoloji değişiklikleri çakışan yok başka tüm düğümler için tutarlı bir duruma getirilir.

    5. yürütmek sp_changepublication: ve @ özellik parametresi için ' p2p_continue_onconflict' belirtinfalse @ değer parametre için.

See Also

Concepts