SQL Alerts a notifikace nad SQL Serverem -Database mail (Díl 4.)

Jako správci SQL Serveru bychom měli vědět, co se na serveru během dne děje a jestli tam nedochází k nějakým nežádoucím incidentům. K tomu se dají využít Alerts (upozornění). Pokud se vyskytne nějaká událost, kterou hlídá definovaný alert, tak dojde k odeslání notifikace přes email operátorovi, který může stav napravit nebo ho vezme na vědomí.

Alerty se dají nastavit úplně na všechno vč. naprogramování podmínky přes Powershell. V každém případě dobrá věc. Alerty formálně “obsluhuje” SQL Server Agent.

SQL Alerts - Kde je najdeme

Co potřebujeme mít nastaveno, aby Alerts nad SQL Server šlapaly?

(1) Odesílání notifikací jde přes database mail, takže první podmínkou je nastavení mailu. Jak nastavit mail najdete v článku zde. Pokud nemáte nastaveno, učiňte tak a vraťte se později 🙂

(2) Dalším krokem je definování operátora, tzn příjemce upozornění v případě výskytu události

(3) Posledním požadakem je povolení Alerts v SQL Server Agent a nastavení přes který emailový profil se budou posílat na operátora notifikace.

SQL Alerts - Nastavení v SQL Server Agentovi

Vytvoření Alertu v návaznosti na událost “Nějaký blbec dělí 0”

Na odlehčení této vážné situace vytvořím Alert na to, když se někdo pokusí dělit nulou. Alerty budete pochopitelně využívat na checkování důležitějších událostí jako jsou třeba fatal errory, nedostatek zdrojů na serveru a podobně.

(1) Klikneme pravým na Alerts -> New Alert.

  • Vyplníme název alertu
  • Typ Alertu – vybírat můžete z několika variant – SQL event (tento případ), performance podmínka, WMI Event
  • Nad jakou databází se má Alert aplikovat
  • Dále vybereme podmínku kdy nám SQL Server upozornění

Nový alert - někdo dělí 0

(2) V menu vybereme Response a nastavíme že chceme poslat notifikaci na vybraného operátora emailem. Nastavení Alertu je vyřízeno.

SQL Alert -Response

(3) Raisneme si custom error (respektive informaci – severity 9). Chyba musí být raisnuta WITH LOG, jinak se Alert nepošle

BEGIN TRY
   SELECT 1/0
END TRY
BEGIN CATCH
   RAISERROR('Nulou nelze dělit......',9,1) WITH LOG
END CATCH

Po exekuci skriptu se nám vypíše informace že nulou nelze dělit a měl by dojít email….

SQL Alert - raisnutí chyby a čekání na email

…a došel

SQL Alert - email byl doručen

 

 

 

_______________________________________________________________________________________________
Intelligent technologies - podniková řešení a školení
SQL Alerts a notifikace nad SQL Serverem -Database mail (Díl 4.)
Hodnocení

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

This site uses Akismet to reduce spam. Learn how your comment data is processed.