参考文献:
1.圖文教你怎樣配置Database Mail+JOB(MS_SQL2005以上版本)(按照这个教程完成配置)
2.SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件(官方教程,从老外那边翻译过来的,在smtp配置上没有文献1有价值)
3.配置SQL Server Job运行成功或失败时发送电子邮件通知
正文
database mail配置
具体可以参考文献1,配置的重点是邮件的smtp服务器配置,具体参考如下图
1.在Outgoing mail server(SMTP)中,email address地址就是你用来给别人发送邮件的数据库邮件地址。而server name则根据每个邮件服务器来具体填写,配置过outlook的人会很熟悉,这里填写smtp.163.com。具体的端口号我用google查了一下,却是是25。
2.在下面的SMTP Authentication配置,User name是邮件地址,带有@163.com。password就是邮件密码。
配置SQL Server Agent的Alert System
前面database配置成功以后,我们发送测试邮件成功。但是还是不能做到在作业成功完成之后发送通知信息。
1.我们首先在SQL Server Agent->Operator下创建操作者,如下图所示,填写操作者姓名(Name)以及邮件地址(E-mail name),其他的不需要填写。
2.为作业(job)指定警报器,如下图所示。右键Job-BackupDatabase选择属性,然后再Notification选项卡中指定操作者,我们这里选择前面创建的operator:xw,条件是当这个job成功之后给操作者发送通知。
3.右键作业,选择“start job at step”。job可以成功执行,但是我们并没有收到邮件,这是为什么?那么我们查看job的执行log,如下图所示;
从上图倒数第二条log日志中我们发现有一个错误:NOTE:Failed to notify 'xw' via email。之所以会出现这样的错误,是因为我们没有配置SQL Server Agent的Alert System。我们之前配置的只是database email,但是并不是sql server的email。我们可以通过配置SQL Server Agent的Alert System来指定使用database email来发送通知信息。如下图所示:
如上图所示,我们在Alert System中Enable mail profile,然后选择database mail。这样就可以在作业执行成功之后发送通知信息了。
测试
右键备份数据库的作业,选择start job at step。在成功执行完job以后,我们发现job日志中没有了NOTE:Failed to notify 'xw' via email。并且xw这个operator的邮箱中也收到了操作成功的信息。邮件信息如下:
JOB RUN: 'Job-BackupDatabase' was run on 2012/6/26 at 16:32:46 DURATION: 0 hours, 0 minutes, 1 seconds STATUS: Succeeded MESSAGES: The job succeeded. The Job was invoked by User xxxx. The last step to run was step 1 (Setp1-exec tsql).
本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2012/06/26/2563789.html,如需转载请自行联系原作者