torsdag 7 juli 2011

Konfigurera upp mailnotifiering i SQL Server 2008

Oavsett hur vattentätt ett ETL-flöde är, kan oförutsedda fel uppstå. Som det så fint heter är ju kedjan aldrig starkare än sin svagaste länk. I mitt fall och för så många andra var källdatat det svarta fåret. Till exempel så är en källa en http-länk innehållandes en XML som varje timme behöver läsas in via ett cronjobb.

Därför, för att kontinuerligt slippa logga in på servern och se så att nattjobbet gått som de skulle, konfigurerade jag upp servern så att den skickade ett mail till förvaltningen så fort något nattjobb gått snett.

För att konfigurera upp en sådan notifiering är det ett gäng steg man måste ta sig förbi.

Jag tog hjälp av en utvecklares bästa vän, Google, för att se till så att jag inte missade något steg.

Efter lite letande hittade jag en jättebra tutorial för hur man konfigurerar upp en mailnotifiering för SQL Server. Det är ju inte mer än rätt att även ni får ta del av den. Vem vet, kanske är det så att även du hittat detta blogginlägg via Google.
Håll till godo!


Step 1) Create Profile and Account:
You need to create a profile and account using the Configure Database Mail Wizard which can be accessed from the Configure Database Mail context menu of the Database Mail node in Management Node. This wizard is used to manage accounts, profiles, and Database Mail global settings which are shown below:























Step 2) Configure Email:
After the Account and the Profile are created successfully, we need to configure the Database Mail. To configure it, we need to enable the Database Mail XPs parameter through the sp_configure stored procedure, as shown here:

sp_CONFIGURE 'show advanced', 1
GO
RECONFIGURE
GO
sp_CONFIGURE 'Database Mail XPs', 1
GO
RECONFIGURE
GO




Step 3) Send Email:
After all configurations are done, we are now ready to send an email. To send mail, we need to execute a stored procedure sp_send_dbmail and provide the required parameters as shown below:
USE msdb
GO
EXEC sp_send_dbmail @profile_name='PinalProfile',
@recipients='test@Example.com',
@subject='Test message',
@body='This is the body of the test message.
Congrates Database Mail Received By you Successfully.'



After all validations of the parameters entered are done, certain stored procedures are executed and the mail is queued by Service Broker, read more at SQL SERVER – Introduction to Service Broker.
Database Mail keeps copies of outgoing e-mail messages and displays them in the sysmail_allitems, sysmail_sentitems, sysmail_unsentitems,sysmail_faileditems . The status of the mail sent can be seen insysmail_mailitems table, when the mail is sent successfully the sent_status field of the sysmail_mailitems table is set to 1 which can again be seen in sysmail_sentitems table. The mails that are failed will have the sent_status field value to 2 and those are unsent will have value 3.
The log can be checked in sysmail_log table as shown below:

SELECT *
FROM sysmail_mailitems
GO
SELECT *
FROM sysmail_log
GO



Status can be verified using sysmail_sentitems table.


Hoppas denna tutorial var till någon hjälp, det var den sannerligen för mig!

Måste även passa på att önska er alla en trevlig sommar för nu går jag på semester! :)

Tjenamors!

Inga kommentarer:

Skicka en kommentar