Dağıtım Aracısı'nda -SkipErrors parametresini kullanma
Bu makalede Dağıtım Aracısı'nda parametre kullanımı -SkipErrors
tanıtır.
Özgün ürün sürümü: SQL Server
Özgün KB numarası: 327817
Özet
Microsoft SQL Server Dağıtım Aracısı'nda, Dağıtım Aracısı'nın işlem çoğaltmasında belirtilen hatayı atlayıp dağıtım işlemine devam etmesi için izin veren yeni parametreyi -SkipErrors
içerir.
Aşağıdaki alıntı, SQL Server Books Online'daki Aracı Hatalarını İşleme konusundan alınmıştır:
Tipik çoğaltma işleme altında atlanması gereken hatalara karşılaşmamalısınız. İşlem çoğaltması sırasında hataları atlama özelliği, hataları beklediğiniz ve çoğaltmayı etkilemesini istemediğiniz benzersiz durumlarda kullanılabilir (örneğin, günlük gönderimi sırasında ikincil yayımcıya yük devredildiğinde).
Microsoft, bu parametreyi dikkatli bir şekilde ve yalnızca aşağıdakileri iyi anladığınızda kullanmanızı önerir:
- Hatanın gösterdiği.
- Hatanın neden oluştuğu.
- Hatayı çözmek yerine atlamak neden daha iyidir?
Bu öğelerin yanıtlarını bilmiyorsanız, parametrenin -SkipErrors
uygunsuz kullanımı Yayımcı ile Abone arasında veri tutarsızlığına neden olabilir. Bu makalede, parametresini yanlış kullandığınızda -SkipErrors
oluşabilecek bazı sorunlar açıklanmaktadır.
Daha fazla bilgi
İşlem çoğaltmasında, Yayımcı'daki veri değişiklikleri işlem birimindeki Aboneye yayılır.
Bir işlemde birden çok komut olabilir. Varsayılan olarak, bir komut başarısız olursa, çoğaltma işleminin tamamı Abone'ye geri döner. Dağıtım Aracısı'nın belirli hataları atlamasına izin vermek için parametresini eklerseniz -SkipErrors
, bu hataya neden olan tek tek komut Aboneye uygulanmaz, ancak aynı işlemlerdeki diğer tüm komutlar uygulanır. Bu durumda, çoğaltma işlemi Aboneye yalnızca kısmen uygulanır ve bu nedenle Yayımcı ile Abone arasında veri tutarsızlığına neden olabilir.
Örneğin:
T1 adlı Abone tablosuna çoğaltılmayı bekleyen bir işleminiz var. Bu işlem 100 insert deyimi içerir. Abone için geçerli olduğunda, ilk 90 ekleme işlemi doğru şekilde gerçekleştirilir; ancak doksan birinci insert deyimi başarısız olur ve birincil anahtar ihlali hatası 2627 oluşur.
parametresini -SkipErrors
kullanmadığınızda (varsayılan davranış):
Varsayılan olarak, tüm işlem geri alınır ve 100 yeni kayıttan hiçbiri abone olan tabloya eklenmez. Bu durumda, işlemin Aboneye yeniden uygulanabilmesi için çoğaltma hatasını düzeltmeniz gerekir.
parametresini -SkipErrors
kullandığınızda:
Dağıtım Aracısı, hatayı Dağıtım Aracısı geçmişinde günlüğe kaydeder, bu hatayı atlar ve ardından dağıtım işlemine devam eder. Bu nedenle, hataya neden olan doksan birinci yeni kayıt dışında, diğer 99 yeni kayıt abone olan tabloya eklenir. Abonedeki hatayı el ile düzeltseniz bile bu işlem Dağıtım Aracısı tarafından yeniden uygulanmaz. Bu nedenle, bu durumda Abone doksan ilk yeni kaydı eksiktir ve bir veri tutarsızlık sorunu oluşur.
Ayrıca, SQL Server 2000'de Dağıtım Aracısı'nın genellikle birden çok yayın tarafından paylaşıldığını da bilmeniz gerekir (varsayılan olarak yayın veritabanı ve abonelik veritabanı çifti başına bir Dağıtım Aracısı vardır), dolayısıyla parametreyi -SkipErrors
Dağıtım Aracısı işine eklerseniz, bu aracının hizmet verdiği tüm yayınları etkiler. SQL 2005 ve SQL 2008 sürümlerinde, işlem çoğaltması Yeni Yayın Sihirbazı'nda oluşturulan yayınlar için varsayılan olarak bağımsız aracılar kullanır. Saklı yordam kullanılarak sp_addpublication
oluşturulan yayınlar için varsayılan davranış paylaşılan aracı kullanmaktır.
Belirli bir yayının parametresini -SkipErrors
kullanmak için, yalnızca bir aboneliğe hizmet veren bağımsız bir aracı kullanın. Bağımsız bir aracı kullanmak için sürümünüzle ilgili adımları izleyin:
SQL Server 2000
SQL Server Enterprise Yöneticisi'nde yayına sağ tıklayın, öğesine tıklayın
Properties
ve abonelik seçenekleri sekmesinde, bu veritabanındaki diğer yayınlardan bağımsız bir Dağıtım Aracısı kullan seçeneğine tıklayın.Not
Bu yayına abonelik ekledikten sonra bu seçeneği etkinleştiremezsiniz.
Parametresini
-SkipErrors
belirli bir aboneliğin Dağıtım Aracısı'na ekleyin.
SQL Server 2005 ve SQL Server 2008
SQL Server management studio'da Çoğaltma'ya gidin ve Yerel Yayınlar bölümünde yayına sağ tıklayın, Özellikler'e tıklayın ve abonelik seçenekleri sayfasında Bağımsız Dağıtım Aracısı değerini False yerine True olarak değiştirin.
Not
Bu yayına abonelik ekledikten sonra bu seçeneği etkinleştiremezsiniz.
Parametresini
-SkipErrors
belirli bir aboneliğin Dağıtım Aracısı'na ekleyin.
Daha fazla bilgi için aşağıdakilere bakın:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin