Udostępnij za pośrednictwem


Za pomocą alertów dla zdarzenia agenta replikacji

SQL Server Management Studio and Microsoft SQL Server Agent provide a way to monitor events, such as replication agent events, using alerts.SQL Server Agent monitoruje zdarzenia, które są skojarzone z alertów w dzienniku aplikacji systemu Windows.If such an event occurs, SQL Server Agent responds automatically, by executing a task that you have defined and/or sending e-mail or a pager message to a specified operator.SQL Server includes a set of predefined alerts for replication agents that you can configure to execute a task and/or notify an operator.Aby uzyskać więcej informacji na temat definiowania zadanie do wykonać, zobacz sekcję "Automatyzacja odpowiedzi do alertu" w tym temacie.

Następujące alerty są instalowane, gdy komputer jest skonfigurowany jako dystrybutorzy:

Identyfikator komunikatu

Wstępnie zdefiniowane alert

Warunek, powodując alert na ogień

Wprowadza dodatkowe informacje msdb.sysreplicationalerts

14150

Replikacja: Sukces Agent

Agent przebiega niedziałający pomyślnie.

Tak

14151

Replikacja: Błąd agenta

Agent przebiega niedziałający z powodu błędu.

Tak

14152

Replikacja: Ponów próbę Agent

Agent zostaje wyłączony po niepomyślnie ponawianie operacji (agent napotka błąd takie jak serwer nie jest dostępny, zakleszczenie, błąd połączenia lub czas-out awarii).

Tak

14157

Replikacja: subskrypcja wygasła porzucone

Subskrypcja wygasła zostało porzucone.

Nie

20572

Replikacja: Ustawienie ponownie inicjowane po niepowodzeniu sprawdzania oryginalności subskrypcji

Zadanie odpowiedzi "Reinitialize subskrypcji na błąd sprawdzania poprawności danych" pomyślnie reinitializes subskrypcja.

Nie

20574

Replikacja: Subskrybent nie powiodło się sprawdzanie poprawności danych

Dystrybucji lub scalić agenta niepowodzenia sprawdzania poprawności danych.

Tak

20575

Replikacja: Subskrybent przeszedł sprawdzania poprawności danych

Dystrybucja lub scalić agenta przekazuje sprawdzania poprawności danych.

Tak

20578

Replikacja: niestandardowe zamknięcia agenta

 

 

22815

Alert wykrywanie konfliktów peer-to-peer

Agent dystrybucji wykrył konflikt, gdy próbuje zastosować zmianę w węźle typu peer-to-peer.

Tak

Oprócz tych alertów Monitor replikacji zawiera zestaw ostrzeżenia i alerty dotyczące stanu i wydajności.Aby uzyskać więcej informacji, zobacz Ustawienie wartości progowe i ostrzeżenia w Monitor replikacji.Można także zdefiniować alerty dla innych zdarzeń replikacja przy użyciu SQL Server infrastruktury alertów.Aby uzyskać więcej informacji, zobacz Tworzenie zdarzenia zdefiniowane przez użytkownika.

Aby skonfigurować alerty wstępnie replikacja

Wyświetlanie dziennika aplikacji bezpośrednio

Aby wyświetlić dziennik aplikacji systemu Windows, użyj Microsoft Podgląd zdarzeń systemu Windows.Dziennik aplikacji zawiera SQL Server komunikaty o błędach, jak również wiadomości do wielu innych działań na komputerze.W odróżnieniu od SQL Server Dziennik błędów aplikacji jest tworzony nowy dziennik nie każdy czas uruchomieniu SQL Server (każdy SQL Server sesja zapisuje nowe zdarzenia istniejący dziennik aplikacji); można jednak określić, jak długo zarejestrowane zdarzenia zostaną zachowane.Podczas przeglądania dziennika aplikacji systemu Windows, można filtrować określone zdarzenia w dzienniku.Aby uzyskać więcej informacji zobacz dokumentację systemu Windows.

Automatyzacja odpowiedzi na Alert

Replikacja zawiera zadanie odpowiedzi dla subskrypcji, które niepowodzenie sprawdzania poprawności danych i przewiduje również ramy tworzenia dodatkowych zautomatyzowane odpowiedzi na alerty.Zatytułowanej zadanie odpowiedzi ponownie zainicjować subskrypcji na błąd sprawdzania poprawności danych i przechowywane w SQL Server agenta zadanie folderu w SQL Server Management Studio.Informacje dotyczące włączania tego zadanie odpowiedzi, zobacz Jak Konfigurowanie alertów wstępnie replikacji (SQL Server Management Studio).Jeśli artykuły w publikacja transakcyjnych niepowodzenie sprawdzania poprawności, zadanie odpowiedzi reinitializes tych artykułów, które nie powiodło się.Jeśli artykuły w publikacja seryjnej niepowodzenie sprawdzania poprawności, zadanie odpowiedzi reinitializes wszystkie artykuły w publikacja.

Ramy Automatyzacja odpowiedzi

Zwykle kiedy pojawia się alert, tylko informacje, trzeba zrozumieć, co spowodowało alert i podjąć odpowiednie akcja zawarte w komunikatu alertu.Analizy te informacje mogą być podatne na błędy i czas-zużyciu.Replikacja ułatwia automatyzacji odpowiedzi podając dodatkowe informacje dotyczące alert w sysreplicationalerts tabela systemowa; dostarczone informacje już jest analizowany w formie łatwo używane przez programy dostosowane.

Na przykład jeśli dane w Sales.SalesOrderHeader tabela a abonent niepowodzenia sprawdzania poprawności, SQL Server może wyzwolić komunikat 20574, powiadamiając o tym awarii.Będzie komunikat: "subskrybent"A"subskrypcja artykuł "salesorderheader" w publikacja "mypublication" Niepowodzenie sprawdzania poprawności danych."

Tworzenie odpowiedzi na podstawie komunikatu, musi ręcznie zanalizować Nazwa subskrybenta, artykuł nazwa, nazwa publikacja i błąd z wiadomości.Jednak ponieważ agenta dystrybucji i scalanie agenta zapisu te same informacje, aby sysreplicationalerts (wraz ze szczegółami, takimi jak typ agenta, czas alert, baza danych publikacji, baza danych subskrybenta i typu publikacja) zadanie odpowiedzi może bezpośrednio wysłać odpowiednie informacje z tabela.Chociaż dokładny wiersz nie może być skojarzona z konkretnego wystąpienie alert, tabela ma stanu kolumna, który może służyć do śledzenia serwisowanego wpisów.Zapisy w tej tabela są utrzymywane przez okres przechowywania historia.

Na przykład, jeśli trzeba utworzyć zadanie odpowiedzi w Transact-SQL , usług 20574 komunikat alert, można użyć następującej logiki:

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