Sende automatiserte e-postvarsler i SQL Server med SMTP
Når du har automatiserte sikkerhetskopieringsjobber som kjører på databaseserveren din, kan du noen ganger glemme at de går til og med. Da glemmer du å sjekke for å se om de kjører vellykket, og ikke skjønner før databasen din går i stykker, og du kan ikke gjenopprette den siden du ikke har en gjeldende sikkerhetskopi.
Det er der e-postvarsler kommer inn, slik at du kan se jobbstatus hver morgen når du nipper til kaffen din og utgir at du jobber.
SQL Server gir en innebygd metode for å sende e-post, men dessverre krever det at du har Outlook og en profil installert på serveren, noe som ikke nødvendigvis er den ideelle måten å sende en e-post på. Heldigvis finnes det en annen metode, som innebærer å installere en lagret prosedyre på serveren din som vil tillate deg å sende e-post via SMTP.
Last ned sp_SQLNotify Stored Procedure her.
Du vil redigere en linje i den lagrede prosedyren for å sette IP-adressen til SMTP-serveren din:
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields ("http://schemas.microsoft.com/cdo/configuration/smtpserver") .Value', '10 .1.1.10 '
Installer den lagrede prosedyren i hoveddatabasen, slik at den lett kan brukes fra hvor det er nødvendig.
Åpne SQL Server Agent \ Jobs-listen, og velg egenskapene for jobben du prøver å opprette et varsel for:
Klikk på fanen Trinn, og du bør se en skjerm som ser slik ut:
Klikk på Ny knappen for å opprette et nytt jobbstrinn. Vi vil bruke dette trinnet til å sende e-postvarslingen til suksess.
Stegnavn: Email Notification Success
Skriv inn denne SQL i kommandovinduet som vist nedenfor. Du vil ønske å tilpasse e-postadressene og meldingsemnet slik at de samsvarer med miljøet ditt:
exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Backup Job Succes', 'Backup Job completed successfully'
Klikk OK, og klikk deretter Ny knappen igjen for å opprette et nytt trinn. Dette vil være feilmeldingsstrinnet.
Trinnnavn: E-postvarslingsfeil
SQL:
exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Backup Jobbfeil,' Backup Job failed '
Nå er ideen å få elementene til å følge en bestemt arbeidsflyt. Klikk først på Rediger på trinn 1, og sett egenskapene som vist her:
Det vi sier er at etter suksess går du til suksessstrinnet, og ved feil, gå til feilsteget. Ganske enkle ting.
Rediger nå det andre trinnet, den ene aktiverte "Email Notification Success", og sett egenskapene som vist her:
Vi sier at hvis meldingsjobben er vellykket, avslutter du jobben uten å kjøre trinn 3. Hvis vi ikke spesifiserer dette, vil vi ende opp med å få to e-postmeldinger, en med suksess og en med feil.
Rediger nå det tredje trinnet, den ene aktiverte "E-postvarslingsfeil", og sett egenskapene som vist her:
Nå må dine jobbtak se slik ut:
Du bør nå ha e-postvarsler i innboksen din for enten suksess eller fiasko.
Merk: Den lagrede prosedyren som ble brukt i denne artikkelen ble funnet her, selv om det kanskje ikke er den opprinnelige kilden.
Last ned sp_SQLNotify Stored Procedure her.