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
- SQL Server Management Studio: How to: Configure Predefined Replication Alerts (SQL Server Management Studio)
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