Udostępnij za pośrednictwem


Using Alerts for Replication Agent Events

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 alertami 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 zadania do wykonać zobacz sekcję "Automatyzowanie a odpowiedź do alert" w tym temacie.

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

Identyfikator komunikatu

Wstępnie zdefiniowane alert

Przyczyną warunek alert ognia

Wprowadza dodatkowe informacje w msdbsysreplicationalerts

14150

Replikacja: Agent sukcesu

Agent zakończy niedziałający pomyślnie.

Tak

14151

Replikacja: Błąd agenta

Agent zakończy niedziałający z powodu błędu.

Tak

14152

Replikacja: Spróbuj ponownie agenta

Agent jest zamykany po niepomyślnie ponowienie próby wykonania operacji (agent napotka błędów, takie jak serwer nie jest dostępna, zakleszczenie, błąd połączenia lub błędu limitu czas).

Tak

14157

Replikacja: porzucone subskrypcja wygasła

Wygasłe subskrypcja została usunięta.

Nie

20572

Replikacja: Ustawienie ponownie inicjowane po awarii sprawdzania poprawności subskrypcja

Zadanie odpowiedzi "Reinitialize subskrypcja w przypadku niepowodzenia sprawdzania poprawności danych" pomyślnie reinitializes subskrypcja.

Nie

20574

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

Podział lub scalanie agenta nie powiedzie się sprawdzanie poprawności danych.

Tak

20575

Replikacja: Subskrybent przeszedł sprawdzania poprawności danych

Podział lub scalanie Agent przekazuje sprawdzania poprawności danych.

Tak

20578

Replikacja: niestandardowe zamknięcia agenta

 

 

22815

Alert wykrywania konfliktu typu peer-to-peer

Agent dystrybucji wykrył konflikt przy próbie zastosowania zmiany w węźle typu peer-to-peer.

Tak

Oprócz tych alertów Monitor replikacja zawiera zestaw ostrzeżenia i alertów dotyczących stanu i wydajności.Aby uzyskać więcej informacji zobacz Ustawianie progi i ostrzeżeń w Monitor replikacja. Można także zdefiniować alerty dla innych zdarzeń replikacja przy użyciu SQL Server infrastruktura alertów. Aby uzyskać więcej informacji zobacz Creating a User-Defined Event.

Aby skonfigurować replikację wstępnie zdefiniowane alerty

Wyświetlanie dziennika aplikacji bezpośrednio

Aby przejrzeć dziennik aplikacji systemu Windows, należy użyć Microsoft Podgląd zdarzeń systemu Windows. Dziennik aplikacji zawiera SQL Server komunikaty o błędach, a także wiadomości do wielu innych czynności na komputerze. W odróżnieniu od SQL Server Dziennik błędów, nowy dziennik aplikacji nie jest tworzony każdego czas uruchamiania SQL Server (każdy SQL Server Sesja zapisuje nowe zdarzenia istniejący dziennik aplikacji); 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 w dokumentacji systemu Windows.

Automatyzacja odpowiedzi alert

Replikacja zapewnia zadanie odpowiedzi dla subskrypcji, które się nie powieść sprawdzania poprawności danych i zapewnia także ramy do tworzenia dodatkowych zautomatyzowane odpowiedzi na alerty.Zadanie odpowiedź ma nazwę Ponownie zainicjować subskrypcji w przypadku niepowodzenia sprawdzania poprawności danych i jest przechowywany w SQL Server Agent Zadania folder SQL Server Management Studio. Aby uzyskać informacje dotyczące włączania tego zadanie odpowiedzi zobacz How to: Configure Predefined Replication Alerts (SQL Server Management Studio). Jeśli artykuły w publikacja transakcyjnej nie powiodą się sprawdzania poprawności, zadanie odpowiedzi reinitializes tylko te artykuły 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

Zazwyczaj gdy pojawia się alert, jedyną informacją, trzeba zrozumieć, co spowodowało alertu i podjąć odpowiednie akcja są zawarte w alertu wiadomości.Podczas analizowania informacji mogą być podatne błąd i czasochłonne.Replikacja ułatwia Automatyzacja odpowiedzi przez podanie dodatkowych informacji o alert w sysreplicationalerts systemowej tabela; podane informacje już jest analizowany w łatwy sposób używane przez programy dostosowanego formularza.

Na przykład jeśli dane w Sales.SalesOrderHeader tabela na subskrybent A nie powiedzie się sprawdzanie poprawności, SQL Server może wyzwolić wiadomości 20574, powiadamiających Cię o tym awarii. Komunikat wyświetlany będzie: „ Subskrybent 'A', nie subskrypcja do artykuł "SalesOrderHeader" w publikacja "MyPublication" można sprawdzania poprawności danych. „

Jeśli zostanie utworzona na podstawie komunikatu odpowiedzi, można ręcznie musi przeanalizować nazwę subskrybent, nazwę artykuł, nazwę publikacja i błąd z wiadomości.Jednakże ponieważ agent dystrybucji i scalanie Agent zapisu tych samych informacji sysreplicationalerts (wraz ze szczegółami, takie jak typ agenta, czas, alert, bazy danych w publikacja, baza danych subskrybent i typu publikacja) zadanie odpowiedzi mogą bezpośrednio kwerendy odpowiednich informacji z tabela.Mimo że dokładne wiersz nie może być skojarzone z konkretne wystąpienie alert, ma w tabela Stan kolumna, które mogą być używane do przechowywania informacji o obsługiwanym wpisów.Zapisy w tej tabela są zachowywane w okresie zachowywania historia.

Na przykład, jeśli zostały Aby utworzyć zadanie w odpowiedzi Transact-SQL wiadomości alertów usługi 20574, 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