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

Jako správci SQL Serveru bychom možná chtě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

 

 

 

Rate this post
Rubrika: SQL Administrace

O Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako data engineer freelancer. Během cca 10 let jsem zde shromáždil přes 600 IT case studies, průvodců, návodů a tipů určených zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Data Engineeringu, korporátních financí a reportingu. Zaměřuji se především na Microsoft technologie (on-prem i cloud) a různé synergické efekty v rámci jejich produktového portfolia pro dataře a finanční profesionály. Věnuji se také dalším platformám a významným hráčům z oblasti open source technologií. 🔥 Pokud vám tento článek pomohl, ocením referenci na vašem webu nebo zmínku v komunitě. A mám pro vás ještě tip: řešíte-li nějaký zapeklitý Excel problém, přihlašte se do naší Excel Facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse ».

Leave a Reply

Your email address will not be published. Required fields are marked *