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.
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.
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í
(2) V menu vybereme Response a nastavíme že chceme poslat notifikaci na vybraného operátora emailem. Nastavení Alertu je vyřízeno.
(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….
…a došel