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. leetcode 刷题(2)--- 两数相加

    给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -& ...

  2. 如何使用油猴脚本不要vip就能观看各大视频网站如腾讯,爱奇艺等的vip视频

    如何使用油猴脚本不要vip就能观看各大视频网站如腾讯,爱奇艺等的vip视频 首先打开谷歌商店(这里需要fq,如不能fq的小伙伴请看上面写的Chrome怎么访问外网) 搜索Tampermonkey,点击 ...

  3. 企业级LNMP分离式部署

    安装MySQL数据库   安装步骤介绍 本例采用MySQL二进制安装包进行安装演示 (1) 创建mysql用户的账号   [root@mysql ~]# groupadd mysql [root@my ...

  4. C++实验五

    #include <iostream> #include <vector> #include <string> using namespace std; // 函数 ...

  5. 锋利的jQuery初学(1)

    引包: 1,首先将文件放进项目里面: 2,再在项目里面进行引用jQuery; (书写方式:<script src="jquery-x.xx.1.min.js">< ...

  6. The 19th Zhejiang University Programming Contest Sponsored by TuSimple (Mirror)

    http://acm.zju.edu.cn/onlinejudge/showContestProblems.do?contestId=391 A     Thanks, TuSimple! Time ...

  7. centos7下安装nginx

    1.yum install epel-release(安装epel(Extra Packages for Enterprise Linux)) 2.yum repolist(确保epel添加到yum的 ...

  8. MongoDB连接

    1. import pymongo client = pymongo.MongoClient(host='localhost',port=27017) 2. client=MongoClient('m ...

  9. Android游戏引擎总汇 原文出处:http://software.intel.com/en-us/blogs/2012/03/13/game-engines-for-android?page=1

    随着Android系统的使用越来越广泛,了解一下Android平台下的游戏引擎就非常有必要.而同时因为基于Intel x86的移动设备越来越多,我也非常关注支持x86的移动游戏引擎.然而就目前为止游戏 ...

  10. transmission跳过文件校验功能实现

    贴吧链接:https://tieba.baidu.com/p/4839039900 GitHub:https://github.com/superlukia/transmission-2.92_ski ...