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

配置步骤如下

1.配置数据库邮件

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

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

点击“下一步"以后,如果之前没有启用数据库邮件功能,会弹出对话框询问是否启用。要继续下去,自然得选择”是“了。

启用数据库邮件功能实际上是启用了Database Mail XPs服务器设置

可以提前通过SQL语句来完成,如下:

  1. exec sp_configure 'show advanced options',1
  2. GO
  3. RECONFIGURE
  4. GO
  5. exec sp_configure 'Database Mail XPs',1
  6. GO
  7. RECONFIGURE
  8. GO

新建配置文件步骤,需要指定配置文件名,根据需要设置即可。说明不是必须的。

同时这一步必须添加一个SMTP账号,用来登录到邮件服务器发送邮件。点击”添加“按钮。

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

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

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

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

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

收件人填写为接收邮件的电子邮件地址。点击发送测试电子邮件按钮后,数据会尝试发送邮件。稍等片刻我们检查一下接受邮件的账号是否收到了邮件。没有收到就要检查之前配置的邮件账号信息是否正确了。

配置数据库邮件通过SQL语句方式配置如下

  1. --创建配置文件
  2. exec msdb.dbo.sysmail_add_profile_sp
  3. @profile_name = 'MailConfigForJob',
  4. @description = '数据库作业通知使用';
  5. --添加smtp邮件账号
  6. exec msdb.dbo.sysmail_add_account_sp
  7. @account_name = 'MailAccountForJob',
  8. @description = '作业通知邮件账号',
  9. @email_address = 'JobAlert@test.com',
  10. @mailserver_name='smtp.test.com',
  11. @port = 25,
  12. @username = 'jobalert',
  13. @password = 'userpassword';
  14. --将邮件账号与配置文件进行关联
  15. exec msdb.dbo.sysmail_add_profileaccount_sp
  16. @profile_name = 'MailConfigForJob',
  17. @account_name ='MailAccountForJob',
  18. @sequence_number = 1;

2.添加操作员

添加操作员的目的是用来指定接收邮件通知的接收人。

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

在新建操作员窗口,只需要指定姓名和电子邮件地址名称即可。电子邮件名称是指接收邮件的邮件地址。

创建操作员的SQL语句为

  1. exec msdb.dbo.sp_add_operator
  2. @name = N'JobMonitor',
  3. @email_address=N'jobmonitor';

3.设置作业的通知

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

设置通知的SQL语句为

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

SQL Server 2008 R2中配置作业失败后邮件发送通知的更多相关文章

  1. sql server 2008 r2 中的oracle发布使用笔记

    sql server 2008 r2 中的oracle发布功能,能够将oracle数据库作为发布服务器,将oracle中的数据自动同步到sql server 数据库中,在新建oracle发布前确保sq ...

  2. SQL Server 2008 R2中,变表的右键弹出菜单中的“选择前1000行”为“选择所有行”

    原文:SQL Server 2008 R2中,变表的右键弹出菜单中的"选择前1000行"为"选择所有行" 从SQL Server 2008开始,微软为了提高查询 ...

  3. 在系统启动时,Windows Vista 中、 在 Windows 7 中,Windows Server 2008 中和在 Windows Server 2008 R2 中的 497 天后未关闭 TIME_WAIT 状态的所有 TCP/IP 端口

    在系统启动时,Windows Vista 中. 在 Windows 7 中,Windows Server 2008 中和在 Windows Server 2008 R2 中的 497 天后未关闭 TI ...

  4. SQL Server 2008 r2 中 SQL语句提示“对象名无效”,但可执行

    [问题描述]在使用 SQL Server 2008 r2 时,有时在完成SQL书写后,会提示“对象名无效”,而SQL语句可正常执行. [原因]缓存相关. [解决方法]ctrl+shift+R 刷新下, ...

  5. SQL SERVER 2008 R2安全配置与防暴力破解

    https://blog.csdn.net/enweitech/article/details/49864215 0x00 sql server 2008 权限介绍 在访问sql server 200 ...

  6. SQL Server 2008 R2中,“选择前1000行”为“选择所有行”

    从SQL Server 2008开始,微软为了提高查询效率等原因,右键点击表时弹出菜单中默认没有"显示所有行",而以"选择前1000行"替代. 点击[工具]-& ...

  7. 【转载】SQL Server 2008 r2 中 SQL语句中单引号转义

    sql server有两个转义符. 默认情况下, 单引号'是字符串的边界符, 如果在字符串中包含单引号', 则必须使用两个单引号', 第1个单引号'就是转义符.

  8. 安装 SQL Server 2008 R2 的硬件和软件要求(转)

    以下各部分列出了安装和运行 SQL Server 2008 R2 的最低硬件和软件要求.有关 SharePoint 集成模式下的 Analysis Services 的要求的详细信息,请参阅硬件和软件 ...

  9. 【转载】SQL Server 2008 R2 使用的端口解析

    转载博客:http://www.cnblogs.com/studyzy/archive/2009/11/30/1614139.html SQL Server在安装到服务器上后,出于服务器安全的需要,所 ...

随机推荐

  1. nodejs之mock与跨域代理的三两事

    emmm...好久没写博客了,都忘了该怎么开始. 那就先说下mockjs.因为一些原因,导致后台接口没有数据,那么我们就开始自己造数据,使用的是比较流行mockjs,根据文档就能简单的配置,然后开始愉 ...

  2. VMware 虚拟机安装-->wrf、cmaq安装

    微信关注公众号 “软件安装管家” 下载并安装VMware 下面简要记载我的安装和设置步骤: 下载解压,右键以管理员方式运行 安装好了之后 双击桌面 的VMware 输入许可证密钥:AA510-2DF1 ...

  3. curl请求

    <?php $cookie_file = tempnam('./temp','cookie');  //创建cookie文件保存的位置/** * [curl description] * @pa ...

  4. 炒鸡讨厌换python版本呀

    https://www.cnblogs.com/yjlch1016/p/8641910.html 还是说,装个 Anaconda,你好我好大家好. https://blog.csdn.net/qq_3 ...

  5. 2017 cinemachine

    只有2017以上才可以使用~ 导入Asset store中的cinemachine,会在上方显示cinemachine.每创建一个虚拟摄像机,就会在主摄像机下创建组件  cinemachine Bra ...

  6. 《DSP using MATLAB》Problem 7.16

    使用一种固定窗函数法设计带通滤波器. 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  7. vue--模板语法

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <meta name=& ...

  8. 转:Excel—“撤销工作表保护密码”的破解并获取原始密码

    在日常工作中,您是否遇到过这样的情况:您用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能, ...

  9. python,验证码生成

    <pre>import string import random from PIL import Image from PIL import ImageDraw from PIL impo ...

  10. JS ajax请求参数格式( formData 、serialize)

    $("#importBtn").click(function(){ if($("#conId").val() == ""){ alert(& ...