SQL Server自动化运维——关于邮件通知那点事(1)
需求描述
在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等。如果发生异常,需要提前预警的,通知形式一般为发邮件告知。
邮件作为一种非常便利的预警实现方式,在及时性和易用性方面也有着不可替代的优点。
所以,在本篇中将详细的分析下在SQL Server中的邮件通知功能及使用方式等。
本篇实现
1、通过SQL Server自带的邮件功能实现运维的预警及检测
2、利用数据库邮件组件代替传统的C#发送邮件的弊端
3、实现Job任务运行状态的检测
4、利用PowerShell实现Job任务计划的检测
<1>基础配置
首先,我们来配置下SQL Server中的邮件组件的基础服务项。SQL Server自从05版本起,邮件功能就不需要开启外配配置管理器了,它有着自己的组件,实现邮件发送的功能。
如果,没使用过,可以按照以下步骤进行配置,步骤很简单。

右键,配置数据库邮件

然后直接下一步就行,然后新建一个账户

然 后,下一步完成就可以,步骤很简单,这里面有几个概念需要理清楚,对于SQL Server的邮件账户是由权限控制的,目的是实现不同的人使用不同的邮件账户,比如大型数据库的管理一般有好几个DBA负责运维,分职责之后的运行,发 送预警邮件也就产生了区分,总不能模块中出现了任何问题都发送给一个人。
跟你一毛钱关系都没有的异常,天天给你发邮件,是不是很不爽??....这种管理方式是灰常暴力的!
为了解决上述问题,SQL Server对邮件的账户进行了分类:

分为公共账户和专用账户。
一般如果管理人员少,就配置一个公共账户就可以,有问题都发送到该邮箱就可以。
至此,你已经完成了数据库邮件模块的配置,步骤很简单。这里可以发送一封测试邮件,来测试下邮件的连通性。
提示:SQL Server邮件组件的运行需呀SQL Server Age运行执行,所以需要确保此服务正在运行。
在“数据库邮件”上右键,发送测试电子邮件,输入目标邮箱的地址,然后单击发送就可以。


至此,你的SQL Server已经完成邮件组件的基础配置,然后剩下的工作就是如何利用该组件进行部分工作的完成了。