Ç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
- SQL Server Management Studio: Önceden tanımlanmış çoğaltma uyarıları (SQL Server Management Studio'yu) yapılandırma
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