• 19.9.2018
  • Ing. Jan Zedníček - Data Engineer & Controlling
  • 0

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

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

Jmenuji se Honza Zedníček a působím jako freelancer. Pracoval jsem dříve také jako BI developer, finanční controller a analytik. Vše pro společnosti z oblasti IT, bankovnictví, consultingu a výroby. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a občas neúspěšně odpálím pár balónků v golfu 🏌️

Již cca 10 let zapisuji na tento web různé návody určené zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Business intelligence, korporátních financí a reportingu.

🔥 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 *