Główna » jak » Wysyłanie automatycznych powiadomień e-mail o zadaniach w SQL Server z SMTP

    Wysyłanie automatycznych powiadomień e-mail o zadaniach w SQL Server z SMTP

    Gdy masz automatyczne zadania tworzenia kopii zapasowych uruchomione na serwerze bazy danych, czasami zapominasz, że działają. Następnie zapomniałeś sprawdzić, czy działa poprawnie i nie zdajesz sobie sprawy, dopóki baza danych nie ulegnie awarii i nie możesz go przywrócić, ponieważ nie masz aktualnej kopii zapasowej.

    W tym miejscu przychodzą powiadomienia e-mail, więc możesz zobaczyć status pracy każdego ranka, gdy pijesz kawę i udajesz, że pracujesz.

    SQL Server zapewnia wbudowaną metodę wysyłania wiadomości e-mail, ale niestety wymaga zainstalowania programu Outlook i profilu na serwerze, co niekoniecznie jest idealnym sposobem wysłania wiadomości e-mail. Na szczęście istnieje inna metoda, która polega na zainstalowaniu na serwerze procedury składowanej, która umożliwi wysyłanie wiadomości e-mail przez SMTP.

    Pobierz tutaj procedurę przechowywaną sp_SQLNotify.

    Będziesz chciał edytować jedną linię w procedurze przechowywanej, aby umieścić adres IP serwera SMTP:

    EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields ("http://schemas.microsoft.com/cdo/configuration/smtpserver") .Value', '10 .1.1.10 '

    Zainstaluj procedurę przechowywaną w głównej bazie danych, aby można było z niej łatwo korzystać w dowolnym miejscu.

    Otwórz listę SQL Server Agent \ Jobs i wybierz właściwości zadania, dla którego próbujesz utworzyć powiadomienie:

    Kliknij kartę Kroki i powinieneś zobaczyć ekran wyglądający tak:

    Kliknij przycisk Nowy, aby utworzyć nowy krok zadania. Wykorzystamy ten krok, aby wysłać powiadomienie e-mail o sukcesie.

    Step Name: Email Notification Success

    Wprowadź ten SQL do okna poleceń, jak pokazano poniżej. Będziesz chciał dostosować adresy e-mail i temat wiadomości do swojego środowiska:

    exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Backup Job Success', 'Praca kopii zapasowej zakończona powodzeniem'

    Kliknij przycisk OK, a następnie ponownie kliknij przycisk Nowy, aby utworzyć kolejny krok. To będzie powiadomienie o niepowodzeniu.

    Step Name: Awaria powiadomienia e-mail

    SQL:

    exec master.dbo.sp_SQLUznacz "[email protected]", "[email protected]", "Awaria zadania kopii zapasowej," Zadanie kopii zapasowej nie powiodło się "

    Teraz chodzi o to, aby elementy były zgodne z określonym przepływem pracy. Najpierw kliknij Edytuj w kroku 1 i ustaw właściwości, jak pokazano tutaj:

    Mówimy, że po sukcesie przejdź do etapu sukcesu, aw przypadku niepowodzenia przejdź do etapu niepowodzenia. Dość proste rzeczy.

    Teraz zmodyfikuj drugi krok, jeden uznany "Powiadomienie o powodzeniu pocztą e-mail" i ustaw właściwości zgodnie z poniższym opisem:

    Mówimy, że jeśli zadanie powiadamiania się powiedzie, po prostu zakończ pracę bez uruchamiania kroku 3. Jeśli tego nie określimy, otrzymamy dwa e-maile, jeden z sukcesem i jeden z niepowodzeniem.

    Teraz zmodyfikuj trzeci krok, jeden uznany komunikat "Powiadomienie o niepowodzeniu poczty e-mail" i ustaw właściwości, tak jak tutaj:

    Teraz twoje zadania powinny wyglądać tak:

    Powinieneś teraz otrzymywać powiadomienia pocztą e-mail w skrzynce odbiorczej o sukcesie lub niepowodzeniu.

    Uwaga: Znaleziono procedura składowana użyta w tym artykule, chociaż może nie być to oryginalne źródło.

    Pobierz tutaj procedurę przechowywaną sp_SQLNotify.