30Jun

Wysyłanie automatycznych powiadomień e-mail o zadaniach w programie 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łają 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, kiedy sączysz 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 zapisaną procedurę sp_SQLNotify.

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

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

Zainstalować procedurę przechowywaną w bazie danych master, dzięki czemu można z niej łatwo korzystać tam, gdzie jest to potrzebne.

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

Kliknij kartę Kroki, a zobaczysz ekran wyglądający następująco:

Kliknij przycisk Nowyaby utworzyć nowy krok zadania. Ten krok zostanie wykorzystany do wysłania powiadomienia e-mail o sukcesie.

Nazwa kroku: Powiadomienie o powodzeniu poczty e-mail

Wprowadź ten SQL w oknie poleceń, jak pokazano poniżej. Będziesz chciał dostosować adresy e-mail i temat wiadomości tak, aby pasowały do ​​twojego środowiska:

exec master.dbo.sp_SQLZamów "[email protected]", "[email protected]", "Backup Job Success", "Zadanie kopii zapasowej zakończonepomyślnie "

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

Nazwa kroku: Powiadomienie o niepowodzeniu

SQL:

exec master.dbo.sp_SQLUstaw "[email protected]", "[email protected]", "Awaria zadania kopii zapasowej" Nie powiodło się zadanie kopii zapasowej "

Teraz chodzi o to, abysprawiają, że elementy podążają za określonym przepływem pracy. Najpierw kliknij Edytuj w kroku 1 i ustaw właściwości, jak pokazano poniżej:

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

Teraz edytuj drugi krok, jeden uznany "Sukces powiadomienia pocztą elektroniczną" i ustaw właściwości, jak widać tutaj:

Mówimy, że jeśli zadanie powiadamiania się powiedzie, po prostu zakończ pracę bez wykonywania kroku 3. Jeśli nie "• Określ to, a następnie otrzymamy dwa e-maile, jeden z sukcesem i jeden z niepowodzeniem.

Teraz edytuj trzeci krok, jeden znany "Powiadomienie o niepowodzeniu e-mailem" i ustaw właściwości, jak widać tutaj:

Teraz twoje kroki dotyczące zadań powinny wyglądać następująco:

Powinieneś teraz otrzymywać powiadomienia e-mail do skrzynki odbiorczej dla sukcesu lub porażki.

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

Pobierz tutaj zapisaną procedurę sp_SQLNotify.