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
- SQL Server Management Studio: Jak Konfigurowanie alertów wstępnie replikacji (SQL Server Management Studio)
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