30Jun

Invio di notifiche e-mail di lavori automatizzati in SQL Server con SMTP

Quando hai automatizzato i processi di backup in esecuzione sul tuo server database, a volte dimentichi che sono persino in esecuzione. Poi ti dimentichi di controllare se stanno funzionando con successo e non ti rendi conto fino a quando il tuo database non va in crash e non puoi ripristinarlo dato che non hai un backup corrente.

Ecco dove arrivano le notifiche e-mail, così puoi vedere lo stato del lavoro ogni mattina mentre sorseggi il caffè e fai finta di lavorare.

SQL Server fornisce un metodo integrato per l'invio di e-mail, ma sfortunatamente richiede che Outlook e un profilo siano installati sul server, il che non è necessariamente il modo ideale per inviare una e-mail. Per fortuna c'è un altro metodo, che comporta l'installazione di una stored procedure sul server che ti consentirà di inviare email via SMTP.

Scarica qui la stored procedure sp_SQLNotify.

Si desidera modificare una riga nella stored procedure per inserire l'indirizzo IP del server SMTP:

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

Installa la stored procedure nel database master, in modo che possa essere facilmente utilizzata da qualsiasi luogo.

Aprire l'elenco di SQL Server Agent \ Jobs e selezionare le proprietà per il lavoro che si sta tentando di creare una notifica per:

Fare clic sulla scheda Passi e si dovrebbe vedere una schermata simile a questa:

Fare clic sul pulsante Nuovoper creare un nuovo passaggio di lavoro. Utilizzeremo questo passaggio per inviare la notifica via email in caso di successo.

Nome passaggio: notifica e-mail riuscita

Immettere questo codice SQL nella finestra di comando come mostrato di seguito. Dovrai personalizzare gli indirizzi email e l'oggetto del messaggio in modo che corrisponda al tuo ambiente:

exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Backup job Success', 'Completato il processo di backupcon successo '

Fare clic su OK, quindi fare nuovamente clic sul pulsante Nuovo per creare un altro passaggio. Questa sarà la fase di notifica di errore.

Nome passaggio: errore notifica email

SQL:

exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Errore processo di backup,' Processo di backup non riuscito '

Ora l'idea è difare in modo che gli articoli seguano un flusso di lavoro specifico. Innanzitutto fai clic su Modifica nel passaggio 1 e imposta le proprietà come mostrato qui:

Quello che stiamo dicendo è che in caso di successo, vai alla fase di successo, e in caso di fallimento, vai alla fase di errore. Roba abbastanza semplice

Ora modifica il secondo passaggio, l'altro ha etichettato "Email Notification Success" e imposta le proprietà come mostrato qui:

Stiamo dicendo che se il processo di notifica ha esito positivo, basta lasciare il lavoro senza eseguire il passaggio 3. Se non lo facciamoSpecificare questo, quindi finiremo per ricevere due e-mail, una con successo e una con esito negativo.

Ora modifica il terzo passaggio, quello etichettato "Errore notifica email" e imposta le proprietà come mostrato qui:

Ora i tuoi passi di lavoro dovrebbero assomigliare a questo:

Ora dovresti avere delle notifiche e-mail nella tua casella di posta in caso di successo o fallimento.

Nota: la stored procedure utilizzata in questo articolo è stata trovata qui, anche se potrebbe non essere la fonte originale.

Scarica qui la stored procedure sp_SQLNotify.