SQL Server 邮箱告警配置
目录
配置数据库邮件
* 手动启用数据库邮件功能
* 配置数据库邮件
* 测试数据库邮件实现 JOB 任务运行状态的检测
* 定义操作员
* 新建死锁警报
* 设置 SQL Server 代理创建 Profile 及映射
* 添加 Profile
* 映射 Account 和 Profile
一、配置数据库邮件
1.手动启用数据库邮件功能
需执行以下脚本:
exec sp_configure 'show advanced options',1
RECONFIGURE
exec sp_configure 'Database Mail XPs',1
RECONFIGURE With Override
如下图所示:

2.配置数据库邮件
连接上数据库,Management →Database Mail → Configure Database Mail

弹出如下弹窗,点击 Next

在选择配置任务中,如果是新增选择【Set up Database Mail for the first time , select the setup option】,如果是修改,可选择【Manage Database Mail account and profiles】。
本例选择【Set up Database Mail for the first time , select the setup option】,先择后点击 Next

配置SMTP账户(如果已有SMTP账户,可在下方列表中看到;如果没有,点击添加按钮添加即可。)

新增数据库邮件账户
a. 账户名:可根据实际情况新增
b. 电子邮件地址:开通POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务的邮箱
c. 显示名称:可根据实际情况新增
d. 服务器名称:如果电子邮件地址是QQ邮箱,smtp.qq.com。
e. 此服务器要求安全连接(SSL),打勾。
f. 基本身份验证:用户名为电子邮箱地址;密码为授权码。
本例配置如下,配置完成后点击 OK

录入完成后,可看到 SMTP 账户列表
添加 Profile name(本例为 Monitor_Mail),完成后点击 Next

接下来需要选择安全公共配置,选中刚才配置的文件名,然后后面默认为配置文件,建议选【No】,可根据实际情况配置。
配置完成后点击 Next


默认配置文件选【No】后,可根据实际情况修改系统参数。
本例使用默认配置,点击 Next

配置完成,点击 Finish

点击 Close,关闭窗口。

3.测试数据库邮件
在数据库界面测试,如下图:

在收件人处输入收件人邮箱即可(可添加多个邮箱,邮箱地址之间用分号隔开)
添加完成后,点击 Send Test E-Mail

出现如下弹窗,因为已成功收到数据库测试邮件,故点击 OK

收到邮件如下:

二、实现JOB任务运行状态的检测
使用SQL Server时,很多情况下都需要自定义Job进行部分功能的实现,而大部分时间是采取凌晨或者非业务期进行工作。
因而Job的运行结果的检测便形成了一个需要跟踪的问题,比如有时候N个Job的运行,只有几个出现问题,并且不确定的此Job发生在那个机器上,所以自动化运维的重要性就不言而喻了。
对于上面问题的解决,SQL Server提供了很简单的配置便可以实现。
1 . 定义操作员
SQL Server Agent → Operators → New Operator

说明:
a. 姓名:操作员的姓名,可以是别名。
b. 电子邮件名称:邮箱的地址。
c. 寻呼值班计划:可根据实际情况设置时间
配置完成后点击 OK

展开操作员列表,可看到操作员已添加成功

2. 新建死锁警报
接下来,我们设置死锁(Dead Lock)告警, 如下所示,当然也可以使用UI界面设置。
补充说明:配置前先查询当前警报等级信息:
select * from msdb.dbo.syscategories
查询结果如下

select * from msdb.dbo.sysalerts
查询结果如下

配置语句如下:
USE [msdb]
GO
IF NOT EXISTS(SELECT 1 FROM msdb.dbo.syscategories WHERE name='DBA_MONITORING' AND category_class=2)
BEGIN
EXEC msdb.dbo.sp_add_category
@class=N'ALERT',
@type=N'NONE',
@name=N'DBA_MONITORING' ;
END
GO
IF EXISTS(SELECT 1 FROM msdb.dbo.sysalerts WHERE name='SQL Server Dead Lock Detected')
BEGIN
EXEC msdb.dbo.sp_delete_alert @name=N'SQL Server Dead Lock Detected';
END
GO
IF NOT EXISTS(SELECT 1 FROM msdb.dbo.sysalerts WHERE name='SQL Server Dead Lock Detected')
BEGIN
EXEC msdb.dbo.sp_add_alert @name=N'SQL Server Dead Lock Detected',
@message_id=1205,
@severity=0,
@enabled=1,
@delay_between_responses=0,
@include_event_description_in=1,
@category_name=N'DBA_MONITORING',
@job_id=N'00000000-0000-0000-0000-000000000000'
END
GO
IF NOT EXISTS ( SELECT *
FROM msdb.dbo.sysnotifications
WHERE alert_id = ( SELECT id
FROM msdb.dbo.sysalerts
WHERE name = 'SQL Server Dead Lock Detected'
) )
BEGIN
EXEC msdb.dbo.sp_add_notification @alert_name = N'SQL Server Dead Lock Detected',
@operator_name = N'Manager', @notification_method = 1;
END;
GO
如下图

成功执行后,刷新 Alert 列表

刷新后,展开 Alert 列表可看到新建的告警

3. 设置SQL Server代理
SQL Server Agent → Properties

说明:
a. 选择是否启用配置文件,邮件系统选择了数据库邮件,邮件配置文件可选择具体的配置。
b. 启用防故障操作员
配置 Alert System 选项页,配置完成后点击 OK

补充:其他选项页均保留默认设置,截图如下





三、创建 Profile 及映射
1.添加 Profile
exec msdb..sysmail_add_profile_sp
@profile_name = 'dba_profile'-- profile 名称
,@description = 'dba mail profile'-- profile 描述
,@profile_id = null
如图

2.映射 Account 和 Profile
exec msdb..sysmail_add_profileaccount_sp
@profile_name = 'dba_profile'-- profile 名称
,@account_name = 'Monitor'-- account 名称
,@sequence_number = 1-- account 在profile中顺序
如图

四、配置 Job 发送 Database Log Space 邮件
1.新建Job
SQL Server Agent → Job → New Job

General 选项页配置如下

配置 Step 选项页,点击 New

New Job Step 配置如下图
其中代码段为:
EXEC sp_send_dbmail
@profile_name = 'dba_profile',
@recipients = 'zhangsan@qq.com', //实际配置时需将 zhangsan@qq.com 更换成实际邮箱地址
@subject = 'Data Log Space',@query='dbcc sqlperf(logspace)'

此时会返回到如下界面

配置 Scheduler 选项页,点击 New

根据实际需求配置完成后,点击 OK
本例配置的是 每天每 2h 发一次邮件

点击 OK ,完成配置

展开 Job 列表,可看到新建的 Job

2.测试 Job
SQL Server Agent →Jobs → Database Log Space → Start Job at Step

执行成功,点击 OK 关闭窗口


经测试 Job 成功发送想要的信息 。
SQL Server 邮箱告警配置的更多相关文章
- 在 SQL Server 2005 中配置数据库邮件
一. SQL Server发邮件原理和组件介绍: 数据库邮件有4个组件:配置文件.邮件处理组件.可执行文件以及“日志记录和审核组件”. l 配置组件包括: 1)数据库邮件帐户包 ...
- 实战SQL Server 2005镜像配置全过程
SQL Server 2005镜像配置基本概念 我理解的SQL Server 2005镜像配置实际上就是由三个服务器(也可以是同一服务器的三个 SQL 实例)组成的一个保证数据的环境,分别是:主服务器 ...
- SQL Server 全文搜索 配置、查询初体验
原文:SQL Server 全文搜索 配置.查询初体验 一.使用SQL Server全文搜索配置 要使用SQL Server的全文搜索服务,需要进行如下配置. 1.开启全文搜索服务: 2.开启数据库的 ...
- 此操作只能由 SQL Server 中拥有配置数据库读取权限的用户在已加入到某个服务器场的计算机上执行
错误提示:此操作只能由 SQL Server 中拥有配置数据库读取权限的用户在已加入到某个服务器场的计算机上执行.若要将此服务器连接到服务器场,请使用 SharePoint 产品配置向导,该向导可从 ...
- SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
原文:SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件 从2005开始,就引入了"数据库邮件"功能.并且取代SQLMail.原有SQLMail ...
- Centos 7.3下 Linux For SQL Server安装及配置介绍
Centos 7.3下 Linux For SQL Server安装及配置介绍 高文龙关注13人评论2828人阅读2017-03-05 21:46:21 Centos 7.3下Linux For SQ ...
- SQL Server 2012安装配置(Part4 )
SQL Server 2012安装配置(Part1) SQL Server 2012安装配置(Part2) SQL Server 2012安装配置(Part3 ) SQL Server 2012安装配 ...
- SQL Server 2012安装配置(Part3 )
SQL Server 2012安装配置(Part1 ) SQL Server 2012安装配置(Part2 ) SQL Server 2012安装配置(Part3 ) 3 客户端安装 3.1 安装客户 ...
- Zabbix三种邮箱告警配置
环境 环境 IP地址 主机名 需要安装的应用 系统版本 服务端 192.168.23.140 zabbix lamp zabbix_server zabbix_agent CentOS 8 客户端 1 ...
随机推荐
- Python 的 10 个开发技巧!太实用了
1. 如何在运行状态查看源代码? 查看函数的源代码,我们通常会使用 IDE 来完成. 比如在 PyCharm 中,你可以 Ctrl + 鼠标点击 进入函数的源代码. 那如果没有 IDE 呢? 当我们想 ...
- Python的精髓居然是方括号、花括号和圆括号!
和其他编程语言相比,什么才是Python独一无二的特色呢?很多程序员会说,缩进.的确,缩进是Python语言的标志性特点,但这只是外在的.形式上的.从语言特性层面讲,Python的特点是什么呢?我尝试 ...
- ASP.NET Web API运行提示:找到了与该请求匹配的多个操作的解决方法
- 编译nginx增加fair模块
安装必要的软件 ubuntu里是 apt install wget gcc make zlib1g-dev libpcre3-dev 去官网下载最新稳定版的nginx源码 git clone 源码 g ...
- Unity UI适配 之 GridLayoutGroup组件下的内容适配(进度条适配)
好久没有更新博客了,蓝廋啊. 今天写一写关于GripLayoutGroup组件的屏幕适配问题,以在ARPG游戏中常用的经验条适配来举例子,以此来加深自己的记忆,以便在下次需要制作该功能时能够快速完成. ...
- 本地缓存高性能之王Caffeine
前言 随着互联网的高速发展,市面上也出现了越来越多的网站和app.我们判断一个软件是否好用,用户体验就是一个重要的衡量标准.比如说我们经常用的微信,打开一个页面要十几秒,发个语音要几分钟对方才能收到. ...
- python谷歌序列化传输
今日破解某app加密app当中用到了谷歌序列化传输 1.请求序列化文件 # Generated by the protocol buffer compiler. DO NOT EDIT! # sour ...
- MongoDb学习(五)---gridfs --http文件下载
现在网上的文章都是用的低版本的jar包,而最新的jar包,下载的方法进行了改变.在网上也没找到好的方法.就用原生的方法进行下载, 我也不知道对不对.反正可以下载了.就先这样吧.后期准备还是用低版本的开 ...
- IO输入和输出
编程语言的I/O类库中常用使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接受端对象."流"屏蔽了实际的I/O设备中处理数据的细节. JAVA类库中的 ...
- VIM和正则表达式
1.VIM 1.1vim简介 vim是一款强大的文本编辑器,它和 vi 使用方法一致,但功能更为强大.官网:www.vim.org.中文手册:http://vimcdoc.sourceforge.ne ...