Algılama ve mantıksal kayıtlar içinde çakışmaları çözme
Bu konu çeşitli kombinasyonları çakışma algılama ve çakışma çözümleme yaklaşımları mümkün mantıksal kayıtları kullanırken kapsar. Aynı verileri birden fazla düğüm değiştirir veya birleştirme çoğaltma hataları, bir kısıtlama ihlali gibi belirli türden değişiklikleri çoğaltılıyor karşılaştığında, birleştirme çoğaltma çakışma oluşur. Çakışma algılaması ve çözümlemesi hakkında daha fazla bilgi için bkz: Gelişmiş birleştirme çoğaltma çakışma algılaması ve Çözümlemesi.
Çakışma izleme ve çözümleme düzeyi bir makale belirtmek için bkz: Birleştirme makaleleri için çakışma izleme ve çözümleme düzeyi belirtin.
Çakışma algılama
Çakışmaları mantıksal kayıtları algılanır yolu iki makale özellikleri tarafından belirlenir: column_tracking ve logical_record_level_conflict_detection. SQL Server 2005ve sonraki sürümlerinde de mantıksal kayıt düzeyi algılama desteği.
Logical_record_level_conflict_detection makale özelliği doğru veya yanlış olarak ayarlanabilir. Değer, yalnızca üst düzey üst yazı için ayarlanmalıdır ve alt makaleleri tarafından yok sayılır. Bu değer false ise,'ün önceki sürümleriyle çakışmaları birleştirme çoğaltması algılar SQL Server, yalnızca değeri temel alınarak column_tracking makale özelliği. Bu değer true ise, birleştirme çoğaltması görmezden column_tracking özelliği makale ve herhangi bir mantıksal kayıtta değişiklikler yapılırsa çakışma algılama. Örneğin, bu senaryoyu inceleyin:
İki kullanıcı içinde Customer2 mantıksal kayıt değerleri değiştirirseniz, bir çakışma algılandığında müşterilerin, siparişleri, veya OrderItems tablolar. Bu örnek bir update deyimi ile yapılan değişiklikleri içerir, ancak çatışma, INSERT veya delete deyimleri ile yapılan değişiklikten de algılanabilir.
Çakışma çözümleme
Varsayılan olarak, birleştirme çoğaltma çakışmalarını çözmek için öncelik tabanlı mantığı kullanır. İki abone veritabanları Çakışan değişikliği yapılırsa, yüksek abonelik öncelikli abone değişikliği kazanır ya da öncelik aynıysa, yayımcı ulaşmak için ilk değişiklik kazanır. Satır düzeyi ve sütun düzeyi algılama, tüm kazanan satırı her zaman kaybeden satır üzerine yazılır.
Logical_record_level_conflict_resolution makale özelliği doğru veya yanlış olarak ayarlanabilir. Değer, yalnızca üst düzey üst yazı için ayarlanmalıdır ve alt makaleleri tarafından yok sayılır. Değer true ise, tüm kazanan mantıksal kaydı kaybeden mantıksal kaydın üzerine yazar. Eğer yanlış, tek tek kazanan satır farklı aboneleri veya yayıncılar gelebilir. Örneğin, abone a-ebil kazanmak bir satırdan çakışmasını siparişleri tablo ve abone b kazanmak ilgili bir satırda OrderItems tablo. Sonucu olan bir mantıksal kaydı siparişleri abone bir ve satır OrderItems abone b. satırdan
Etkileşim çakışma çözünürlüğü ve algılama ayarları
Çakışma çakışma algılaması ve çözümlemesi ayarlarını etkileşimi bağlı. Aşağıdaki örnekler için öncelik tabanlı çakışma çözünürlüğü kullanıldığını varsayılır. Mantıksal kayıtları kullanıldığında, olanaklar şunlardır:
Satır veya sütun düzeyi algılama, satır düzeyi çözünürlüğü
Sütun düzeyi algılama, mantıksal kaydı çözünürlüğü
Satır düzeyi algılama, mantıksal kaydı çözünürlüğü
Mantıksal kaydı algılama, mantıksal kaydı çözünürlüğü
Satır veya sütun düzeyi algılama, satır düzeyi çözünürlüğü
Bu örnekte, yayını yapılandırılır:
column_tracking true veya false
logical_record_level_conflict_detection false
logical_record_level_conflict_resolution false
Bu durumda, algılama satır veya sütun düzeyinde ve satır düzeyinde çözümlemesidir. Bu ayarlar, tüm değişiklikleri bir mantıksal kayıt Çoğalt bir birim olarak, ancak çakışma algılama ya da çözüm olmadan mantıksal kayıt düzeyinde olan yararlanmak için kullanılır.
Sütun düzeyi algılama, mantıksal kaydı çözünürlüğü
Bu örnekte, yayını yapılandırılır:
column_tracking true
logical_record_level_conflict_detection false
logical_record_level_conflict_resolution true
Publisher ve abone ile aynı veri kümesi başlatın ve mantıksal bir kayıt arasında tanımlanan siparişleri ve müşterilerin tablolar. Publisher değişiklikleri custcol1 sütununda müşterilerin tablo ve ordercol1 de siparişleri tablosu. Abone değişiklikleri custcol1 aynı satırında müşterilerin tablo ve ordercol2 aynı satırındaki sütun siparişleri tablo. Aynı sütunda yapılan değişiklikler Müşteri tablo çakışma, ancak yapılan değişiklikler sonucu siparişleri tablo çatışması değildir.
Çakışmaları mantıksal kayıt düzeyinde çözümlendiği için Yayımcı tarafında yapılan kazanan değişiklikleri abone tablolarda çoğaltma işlemi sırasında yapılan değişiklikleri değiştirin.
Satır düzeyi algılama, mantıksal kaydı çözünürlüğü
Bu örnekte, yayını yapılandırılır:
column_tracking false
logical_record_level_conflict_detection false
logical_record_level_conflict_resolution true
Publisher ve abone ile aynı veri kümesi başlatın. Publisher değişiklikleri custcol1 sütununda müşterilerin tablosu. Abone değişiklikleri custcol2 de müşterilerin tablo ve ordercol2 sütununda siparişleri tablosu. Aynı satırda değişiklik müşterilerin tablo sonucu bir çatışma, ancak abone değişiklikleri siparişleri tablo çatışması değildir.
Çakışmaları mantıksal kayıt düzeyinde çözülmüş olduğundan eşitleme sırasında Yayımcı tarafında yapılan kazanan değişiklikleri abone tablolarda yapılan değişikliklerin yerini alır.
Mantıksal kaydı algılama, mantıksal kaydı çözünürlüğü
Bu örnekte, yayını yapılandırılır:
logical_record_level_conflict_detection true
logical_record_level_conflict_resolution true
Publisher ve abone ile aynı veri kümesi başlatın. Publisher değişiklikleri custcol1 sütununda müşterilerin tablosu. Abone değişiklikleri ordercol1 sütununda siparişleri tablosu. Aynı satır veya sütun, herhangi bir değişiklik yok ama aynı mantıksal kaydında yapılan değişiklikler nedeniyle CustId= 1, değişikliklerin mantıksal kayıt düzeyinde çakışma olarak algılanır.
Çakışmaları mantıksal kayıt düzeyinde de çözülmüş olduğundan eşitleme sırasında Yayımcı tarafında yapılan kazanan değişiklik abone tablolarda yapılan değişikliği değiştirir.
Ayrıca bkz.
Kavramlar
Grup değişiklikleri'mantıksal kayıtları ile ilgili satırları