惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
G
Google Developers Blog
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Engineering at Meta
Engineering at Meta
B
Blog
博客园_首页
量子位
博客园 - 叶小钗
L
LangChain Blog
T
The Blog of Author Tim Ferriss
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale
F
Fortinet All Blogs
S
SegmentFault 最新的问题
宝玉的分享
宝玉的分享
D
DataBreaches.Net
雷峰网
雷峰网
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
TaoSecurity Blog
TaoSecurity Blog
罗磊的独立博客
MongoDB | Blog
MongoDB | Blog
The GitHub Blog
The GitHub Blog
I
Intezer
H
Help Net Security
The Hacker News
The Hacker News
The Register - Security
The Register - Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
AWS News Blog
AWS News Blog
V
V2EX
Microsoft Security Blog
Microsoft Security Blog
T
Tenable Blog
Spread Privacy
Spread Privacy
A
Arctic Wolf
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
Schneier on Security
Schneier on Security
C
CERT Recently Published Vulnerability Notes
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Last Watchdog
The Last Watchdog
Latest news
Latest news
T
Troy Hunt's Blog
L
LINUX DO - 热门话题

博客园 - 迷途

Axure教程 | 轻量级的后台原型框架 Axure:侧导航收缩与展开 SQLSERVER数据库调优 MySQL用GROUP BY分组取字段最大值或最新一条 Mysql索引总结 Sqlserver 创建表角本 在SQLSERVER中处理特殊字符以及空格。 索引优化--汇总 游标简单使用 SQL Server 索引优化-----数据库引擎优化顾问 SQL Server 索引优化 ——索引缺失 SQL Server 索引优化——无用索引 win7远程服务器发生身份验证错误,要求的函数不受支持 库龄分析-先进先出法 sql server 数据库创建链接服务器 sqlserver 使用脚本创建作业 SQL分组取每组前一(或几)条记录(排名) SQL SERVER 中如何用脚本管理作业 sqlserver2008 查看数据库自带的索引建议
SQL Server 2008 R2中配置作业失败后邮件发送通知
迷途 · 2017-07-10 · via 博客园 - 迷途

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.   
  6. --添加smtp邮件账号  
  7. exec msdb.dbo.sysmail_add_account_sp  
  8.     @account_name = 'MailAccountForJob',  
  9.     @description = '作业通知邮件账号',  
  10.     @email_address = 'JobAlert@test.com',  
  11.     @mailserver_name='smtp.test.com',  
  12.     @port = 25,  
  13.     @username = 'jobalert',  
  14.     @password = 'userpassword';  
  15.       
  16. --将邮件账号与配置文件进行关联  
  17. exec msdb.dbo.sysmail_add_profileaccount_sp   
  18.     @profile_name = 'MailConfigForJob',  
  19.     @account_name ='MailAccountForJob',  
  20.     @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';