设为首页 收藏本站
查看: 1187|回复: 0

[经验分享] SQL Server 2008 R2中配置作业失败后邮件发送通知

[复制链接]

尚未签到

发表于 2017-12-14 09:31:26 | 显示全部楼层 |阅读模式
  SQL Server日常维护中难免会遇到作业失败的情况。失败后自然需要知道它失败了,除了例行检查可以发现出错以外,有一个较实时的监控还是很有必要的。比较专业的监控系统比如SCOM虽然可以监控作业执行情况在出错时进行报警,但对于DBA来说可能可定制性不高,最主要的是负责监控的人员在看到报警后一般都需要立刻联系DBA来解决,对于一些重要性不高的作业失败了,大半夜把你叫起来,感觉肯定是不爽的。SQL Server 本身支持发送数据库邮件,结合发送邮件的功能,在作业失败后将出错情况通过邮件通知DBA,这样对于了解作业执行是否异常帮助是很大的。
  配置步骤如下
  1.配置数据库邮件
DSC0000.jpg

  在管理节点下,找到“数据库邮件”,右击,选择“配置数据库邮件”
DSC0001.jpg

  配置向导的“选择配置任务”步骤,可以选择第一项,这样可以按向导步骤配置各项。
DSC0002.jpg

  点击“下一步"以后,如果之前没有启用数据库邮件功能,会弹出对话框询问是否启用。要继续下去,自然得选择”是“了。
  启用数据库邮件功能实际上是启用了Database Mail XPs服务器设置
  可以提前通过SQL语句来完成,如下:
[sql] view plain copy

  • exec sp_configure 'show advanced options',1
  • GO
  • RECONFIGURE
  • GO
  • exec sp_configure 'Database Mail XPs',1
  • GO
  • RECONFIGURE
  • GO
DSC0003.jpg

  新建配置文件步骤,需要指定配置文件名,根据需要设置即可。说明不是必须的。
  同时这一步必须添加一个SMTP账号,用来登录到邮件服务器发送邮件。点击”添加“按钮。
DSC0004.jpg

  在新建数据库邮件账号对话框里,需要指定账号名、电子邮件地址、服务器名称,还要选择身份验证的方式。一般我们连接的邮件服务器都是需要通过用户名和密码的方式进行验证,所以要选择”基本身份验证“,并填写正确的用户名、密码以及确认密码。
DSC0005.jpg

  这样就完成STMP账号的添加了,点击”下一步“继续
DSC0006.jpg

  在”管理配置文件安全性“步骤可以保持默认的设置,也可以根据实际安全性要求进行设置。
DSC0007.jpg

  在”配置系统参数“步骤,按需要酌情设置。账户重试次数有必要设置一下,这样在遇到邮件服务器短时间内无法连接的时候可以通过重试来尽量避免通知邮件收不到的情况发生。之后下一步完成向导就可以了。
DSC0008.jpg

  配置完数据库邮件以后,最好测试一下数据库邮件工作是否正常。右击”数据库邮件“项选择”发送测试电子邮件“。
DSC0009.jpg

  收件人填写为接收邮件的电子邮件地址。点击发送测试电子邮件按钮后,数据会尝试发送邮件。稍等片刻我们检查一下接受邮件的账号是否收到了邮件。没有收到就要检查之前配置的邮件账号信息是否正确了。
  配置数据库邮件通过SQL语句方式配置如下
[delphi] view plain copy

  • --创建配置文件
  • exec msdb.dbo.sysmail_add_profile_sp
  •     @profile_name = 'MailConfigForJob',
  •     @description = '数据库作业通知使用';

  • --添加smtp邮件账号
  • exec msdb.dbo.sysmail_add_account_sp
  •     @account_name = 'MailAccountForJob',
  •     @description = '作业通知邮件账号',
  •     @email_address = 'JobAlert@test.com',
  •     @mailserver_name='smtp.test.com',
  •     @port = 25,
  •     @username = 'jobalert',
  •     @password = 'userpassword';

  • --将邮件账号与配置文件进行关联
  • exec msdb.dbo.sysmail_add_profileaccount_sp
  •     @profile_name = 'MailConfigForJob',
  •     @account_name ='MailAccountForJob',
  •     @sequence_number = 1;
  2.添加操作员
  添加操作员的目的是用来指定接收邮件通知的接收人。
DSC00010.jpg

  在SQL Server 代理下右击”操作员“,选择”新建操作员“
DSC00011.jpg

  在新建操作员窗口,只需要指定姓名和电子邮件地址名称即可。电子邮件名称是指接收邮件的邮件地址。
  创建操作员的SQL语句为
[sql] view plain copy

  • exec msdb.dbo.sp_add_operator
  •     @name = N'JobMonitor',
  •     @email_address=N'jobmonitor';
  3.设置作业的通知
DSC00012.jpg

  假设要在一个已经存在的作业上设置邮件提醒,在作业属性里先选中”通知“选项卡,在右侧点击”电子邮件“复选框,之后在第一个下拉列表中选择之前创建的操作员”JobMonitor",后边的“当作业失败时”为默认选择项,也可以改成“当作业成功时”或“当作业完成时”,这个根据实际需要而定。对于作业比较多的情况设置作业成功也接收邮件的话,要经常查看很多通知邮件,很容易造成视觉疲劳,有可能把失败的邮件忽略掉。当然,有时候服务器异常导致作业没有执行,是不会发送任何邮件的,如果完成时发送邮件的话可以确定作业已经执行了,突然有一天没有收到邮件,那就得主动去检查一下了。
  设置通知的SQL语句为
[sql] view plain copy

    • exec msdb.dbo.sp_update_job
    •     @job_name = 'test',
    •     @notify_level_email = 2,
    •     @notify_email_operator_name = N'JobMonitor';


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-423912-1-1.html 上篇帖子: SQL SERVER 检查点 下篇帖子: SQL Server死锁的解决过程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表