Aracılığıyla paylaş


Işlem çoğaltma hatalar atlanıyor.

Işlem çoğaltma için dağıtım işlemi sırasında karşılaşılan hataları atlayın için iki yol vardır:

  • The -SkipErrors parameter of the Distribution Agent, which allows you to skip errors of a certain type.Hatalı hareketi tamamlanmış değil, ancak sonraki hareketler.

  • The sp_setsubscriptionxactseqno saklı yordam, which allows you to skip one or more transactions that cause errors.Bu seçenek kullanılamaz olmayan-SQL Server Abonelerin.

Important noteImportant Note:

Işleme, normal çoğaltma altında atlanması gereken hataları karşılaştığınız değil.Hataları, uyarı ve hata koşulu neden oluşan ve neden hata veya özel hareket atlandı çözümlenen yerine gereken anlayış atlandı.Yayımcı tarafında kaydedilen işlem, Abone tarafında atlanır, iki düğüm tamamen, ek hatalarına yol açabilir eşitlenmeyecek.

-SkipErrors parametresi

Varsayılan olarak, aracı, dağıtım aracısını, hatayla karşılaştığında durur.Kullanıp kullanmadığımı -SkipErrors parametresi ve beklenen hata veya hataları, çoğaltma işlemini kesmemelidir istediğiniz aracı hata bilgilerinin günlüğünü ve sonra da çalışmaya devam edin.Distribution Agent yinelenen anahtar ihlali oturum ancak sonraki işlem devam belirtmek isterseniz, örneğin, aracı 2601 hata Atla belirtin (yinelenen anahtar satır nesne eklenemiyor ' %. * ls 'ile benzersiz dizin' %. * ls'.) ve 2627 (% ls kısıtlaması ihlali ' %. * ls'.Yinelenen anahtar nesne eklenemiyor ' %. * ls'.):

-SkipErrors 2601;2627

En yaygın yolu kullanmak için -SkipErrors adlı dağıtım aracısını profili kullanacak biçimde parametresiVeri tutarlılığı hataları devam edin..Distribution Agent 2627, sonra hata, 2601 atlar ve 20598 (Satır Abone tarafında yinelenmiş komutunu uygularken bulunamadı).Daha fazla bilgi için bkz: Çoğaltma aracısı profilleri. Önceden tanımlı bu profili ek olarak, bir aracı profili oluşturmanız veya değiştirmeniz veya komut satırı parametresi belirtebilirsiniz.Daha fazla bilgi için, bkz:

Important noteImportant Note:

Varsayılan olarak, Tetikleyicileri ON ayarlanması XACT_ABORT ile çalıştırın.Distribution Agent abone konumundaki değişiklikler uygulanıyor iken bir deyim içinde bir tetikleyici hataya neden olur, değişikliklerin tüm toplu iş iş iş, yerine tek tek deyim başarısız olur.Işlem çoğaltma kullanabileceğiniz -SkipErrors parametre ifadeler hatalara neden atlamak için dağıtım aracı.If -SkipErrors XACT_ABORT ON ile bir deyim hataya neden olur, değişikliklerin tüm toplu iş iş atlanır.XACT_ABORT olmasını gerektiren sürece küme ON Tetikleyicileri, öneririz, küme kullanıyorsanız, KAPALı için -SkipErrors parametresi.Seçeneği için belirtin. SET XACT_ABORT OFF Tetikleyici tanımında. XACT_ABORT hakkında daha fazla bilgi için bkz: küme XACT_ABORT (Transact-SQL).

Saklı yordam sp_setsubscriptionxactseqno

The sp_setsubscriptionxactseqno saklı yordam can be used to skip one or more transactions that cause errors when applied at the abone.Varsa bir hata ya da daha fazla hareket atlamak istiyorsanız:

  1. yürütmek sp_helpsubscriptionerrors sonra Dağıtım Aracısı dağıtımcı sırasında durdurur.Bu saklı yordam sütun döndürür. xact_seqnobaşarısız olan her hareket için günlük sıra numarası (SSN) içeren.

  2. yürütmek sp_setsubscriptionxactseqnobir değer için parametre @ xact_seqno.Başarısız olan tüm hareketleri atlamak isterseniz, döndürülen bir en büyük SSN belirtin. sp_helpsubscriptionerrors.

Daha fazla bilgi için bkz: sp_setsubscriptionxactseqno (Transact-SQL) ve sp_helpsubscriptionerrors (Transact-SQL).