Aracılığıyla paylaş


Çoğaltma aracısı olayları için uyarıları kullanma

SQL Server Management Studiove Microsoft  SQL ServerAgent uyarılarını kullanarak çoğaltma aracısı olayları gibi olayları izlemek için bir yol sağlar. SQL ServerAracı, Windows uygulama günlüğüne uyarı ile ilişkili olayları izler. Böyle bir olay meydana gelirse, SQL ServerAracısı yanıtlar otomatik olarak tanımladığınız görev yürütme ve/veya e-posta veya çağrı iletisi belirtilen işleç için gönderme. SQL Serverbir önceden tanımlanmış uyarıları, sen-ebilmek configure-bir görevi yürütmek için bir işleç bildirmek için çoğaltma aracıları içerir. Görevi çalıştırmak üzere tanımlama hakkında daha fazla bilgi için "Otomatik bir yanıt için bir uyarı" bölümüne bakın Bu konuda.

Bir dağıtımcı yapılandırılmış bilgisayarlar aşağıdaki uyarıları yüklenir:

İleti kimliği

Önceden tanımlanmış uyarı

Uyarı ateşlenmesine neden olan koşulu

Ek bilgileri msdb girer...sysreplicationalerts

14150

Çoğaltma: Aracısı başarı

Aracısı başarıyla kapanır.

Evet

14151

Çoğaltma: Aracısı hatası

Bir hata ile Aracısı kapanır.

Evet

14152

Çoğaltma: Aracısı yeniden deneme

Aracısı işlemi (Aracısı karşılaştığı hata sunucusu kullanılamıyor, kilitlenme, bağlantı hatası veya zaman aşımı hatası gibi) başarısız denemeden sonra kapanır.

Evet

14157

Çoğaltma: süresi dolan abonelik düştü

Süresi dolan abonelik bırakıldı.

Hayır

20572

Çoğaltma: Abonelik doğrulama hatasından sonra yeniden

Yanıt iş 'Reinitialize abonelikleri veri doğrulama hatası' bir abonelik başarıyla reinitializes.

Hayır

20574

Çoğaltma: Abone veri doğrulama başarısız oldu

Dağıtım veya Birleştirme Aracısı veri doğrulama başarısız olur.

Evet

20575

Çoğaltma: Veri doğrulama abone geçti

Dağıtım veya Birleştirme Aracısı veri doğrulama geçirir.

Evet

20578

Çoğaltma: Aracısı özel kapatma

 

 

22815

Eşler arası çakışma algılama uyarı

Bir eşler arası düğümdeki değişikliği uygulamak çalıştığında Dağıtım Aracısı çakışma algılandı.

Evet

Bu uyarıların yanı sıra, çoğaltma izleyicisi, uyarıları ve durum ve performans ile ilgili uyarıları sağlar. Daha fazla bilgi için, bkz. Çoğaltma İzleyicisi eşikleri ve uyarıları ayarla. Ayrıca uyarıları kullanarak diğer çoğaltma olayı tanımlayabilirsiniz SQL ServerUyarıları altyapı. Daha fazla bilgi için, bkz. Kullanıcı tanımlı olay oluşturma.

Önceden tanımlanmış çoğaltma uyarıları yapılandırmak için

Doğrudan uygulama günlüğünü görüntüleme

Windows Uygulama günlüğünü görüntülemek için MicrosoftWindows Olay Görüntüleyicisi'nin. Uygulama günlüğü içerir SQL Serverhata iletilerinin yanı sıra iletileri bilgisayardaki diğer birçok faaliyetleri için. Aksine SQL Serverhata günlüğü her başlattığınızda yeni bir uygulama günlüğü oluşturulmaz SQL Server(her SQL Serveroturum yazıyor yeni olaylar için varolan bir uygulama günlüğü); Ancak, olaylar ne kadar korunur belirtebilirsiniz. Windows Uygulama günlüğünü görüntülediğinizde, belirli olayları günlüğü filtreleyebilirsiniz. Daha fazla bilgi için Windows belgelerine bakın.

Bir yanıt-e doğru bir uyarı otomatikleştirme

Çoğaltma abonelikleri için veri doğrulama başarısız bir yanıt iş sağlar ve ayrıca ek otomatik yanıt-e doğru uyarılar oluşturmak için bir çerçeve sağlar. Başlıklı bir yanıt iş abonelikleri veri doğrulama hatası durumunda yeniden ve depolanır SQL Serverajan işleri klasöründe SQL Server Management Studio. Bu yanıtı işlemini etkinleştirme hakkında daha fazla bilgi için bkz: Önceden tanımlanmış çoğaltma uyarıları (SQL Server Management Studio'yu) yapılandırma. Işlem bir yayındaki makaleleri doğrulama başarısız olursa, başarısız makaleleri yanıt iş reinitializes. Birleştirme yayını makaleleri doğrulama başarısız olursa, yayındaki tüm makaleleri yanıt iş reinitializes.

Yanıt-e doğru otomatikleştirmek için çerçeve

Genellikle, bir uyarı oluştuğunda, tek bilgi sen-si olmak-e uyarı ve almak için uygun eylemi nedenini anlamak için uyarı iletisinde yer alan. Bu bilgileri ayrıştırılırken hata eğilimli ve zaman alıcı olabilir. Çoğaltma kolaylaştırır automating yanıt uyarı hakkında ek bilgiler sağlayarak sysreplicationalerts sistem tablosu; bilgiler, kolayca özelleştirilmiş programlar tarafından kullanılan form zaten ayrıştırılır.

Örneğin, eğer veri Sales.SalesOrderHeader tablo abone a başarısız doğrulama, SQL ServerBu hata bildiren ileti 20574, tetikleyebilir. Aldığınız ileti olacaktır: "abone 'a', abonelik makale 'SalesOrderHeader' Yayını 'MyPublication' veri doğrulama başarısız oldu."

İletiyi temel alan bir yanıt oluşturursanız, abone adı, makale adı, yayın adı ve hata iletisinden elle ayrıştırmak gerekir. Ancak, çünkü Dağıtım Aracısı ve Birleştirme Aracısı, aynı bilgileri yazmak sysreplicationalerts (Aracısı türü, zaman uyarı, yayını veritabanı, abone veritabanı ve yayın türü gibi ayrıntıları) ile birlikte yanıt işi doğrudan tablosundaki bilgileri sorgulayabilir. Tam satır belirli bir uyarı örneği ile ilişkili olamaz, ancak tablo olan bir durum sütunu, hizmet girdileri izlemek için kullanılabilir. Bu tablodaki girişleri geçmişini saklama dönemi sürdürülür.

Örneğin, bir yanıt iş oluşturmak için vardı, Transact-SQL, uyarı iletisi 20574 Hizmetleri, aşağıdaki mantık kullanabilirsiniz:

declare @publisher sysname, @publisher_db sysname, @publication sysname, @publication_type int, @article sysname, @subscriber sysname, @subscriber_db sysname, @alert_id int
declare hc cursor local for select publisher, publisher_db, publication, publication_type, article, subscriber, 
  subscriber_db, alert_id from 
  msdb..sysreplicationalerts where
  alert_error_code = 20574 and status = 0
  for read only
open hc
fetch hc into  @publisher, @publisher_db, @publication, @publication_type, @article, @subscriber, @subscriber_db, @alert_id
while (@@fetch_status <> -1)
begin
/* Do custom work  */
/* Update status to 1, which means the alert has been serviced. This prevents subsequent runs of this job from doing this again */
update msdb..sysreplicationalerts set status = 1 where alert_id = @alert_id
 fetch hc into  @publisher, @publisher_db, @publication, @publication_type, @article, @subscriber, @subscriber_db, @alert_id
end
close hc
deallocate hc

declare @publisher sysname, @publisher_db sysname, @publication sysname, @publication_type int, @article sysname, @subscriber sysname, @subscriber_db sysname, @alert_id int
declare hc cursor local for select publisher, publisher_db, publication, publication_type, article, subscriber, 
  subscriber_db, alert_id from 
  msdb..sysreplicationalerts where
  alert_error_code = 20574 and status = 0
  for read only
open hc
fetch hc into  @publisher, @publisher_db, @publication, @publication_type, @article, @subscriber, @subscriber_db, @alert_id
while (@@fetch_status <> -1)
begin
/* Do custom work  */
/* Update status to 1, which means the alert has been serviced. This prevents subsequent runs of this job from doing this again */
update msdb..sysreplicationalerts set status = 1 where alert_id = @alert_id
 fetch hc into  @publisher, @publisher_db, @publication, @publication_type, @article, @subscriber, @subscriber_db, @alert_id
end
close hc
deallocate hc

Ayrıca bkz.

Kavramlar

Çoğaltma aracısı Yönetim

Çoğaltma Yönetimi için en iyi yöntemler

İzleme (çoğaltma)