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:
Etkinleştirme ve algılamasını devre dışı bırakma Management Studio kullanarak Abonelik Seçenekleri sayfayayın özellikleri veya iletişim kutusuTopolojisini yapılandırma yapılandırma eşler arası topoloji sihirbaz sayfası.Daha fazla bilgi için bkz: Nasıl Yapılır: Çakışma algılama eşler işlemsel kopyalama (SQL Server Management Studio'yu) için yapılandırma.
Çakışma algılama kullanarak yapılandırırsanız Management Studio, dağıtım aracısını çakışma algıladığında, değişiklikleri uygulamadan durdurmak için yapılandırılır.
Etkinleştirebilir ve algılama aşağıdaki saklı yordamları kullanarak devre dışı bırakın: sp_addpublication or sp_configure_peerconflictdetection.Daha fazla bilgi için bkz: Nasıl Yapılır: Çakışma algılama eşler arası işlemsel kopyalama (çoğaltma Transact-SQL programlama) için yapılandırma.
Çakışma algılama saklı yordamlar kullanarak yapılandırırsanız, bir çakışma algıladığında, değişiklikleri uygulamadan dağıtım aracısını durdurmanız gerekir olup olmadığını belirtebilirsiniz.Durdurmak aracı için varsayılandır.Varsayılan ayarı kullanmanızı öneririz.
Ç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:
yürütmek sp_changepublication: ve @ özellik parametresi için ' p2p_continue_onconflict' belirtintrue @ değer parametre için.
Dağıtım aracısını yeniden başlatın.
Ç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ı.
Ç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.
yürütmek sp_changepublication: ve @ özellik parametresi için ' p2p_continue_onconflict' belirtinfalse @ değer parametre için.