在生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等。如果发生异常,需要提前预警的,可以以发邮件告知,邮件作为一种非常便利的预警实现方式,在及时性和易用性方面也有着不可替代的优点。

所以,在本篇中将详细的分析下在SQL Server中邮件通知功能及使用方式等。 整个事件的核心就是配置邮件服务,这部分需要一个邮件账户以及相应的邮件服务器。下面以QQ邮件为例进行说明。

一、邮件服务设置

  1、设置邮件服务器 

    邮箱设置-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

    SQL Server配置邮件服务器-冯金伟博客园

    开启POP3/SMTP服务,点击开始,然后点击下方的【生成授权码】,会提示发送短信,然后获得的授权码就是数据库发送邮件帐号的密码。

  2、配置数据库邮件

    2.1 连接上数据库,管理-数据库邮件-右键-配置数据库邮件

    SQL Server配置邮件服务器-冯金伟博客园

    SQL Server配置邮件服务器-冯金伟博客园

    2.2 在选择配置任务中,如果是新增选择【通过执行以下任务来安装数据库邮件】,如果是修改,可选择【管理数据库邮件账户和配置文件】

    SQL Server配置邮件服务器-冯金伟博客园

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

    SQL Server配置邮件服务器-冯金伟博客园

    2.4 新增数据库邮件账户(QQ邮箱可以登陆邮箱官网进行配置)

      a. 账户名:可根据实际情况新增

      b. 电子邮件地址:开通POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务的邮箱

      c. 显示名称:可根据实际情况新增

      d. 服务器名称:如果电子邮件地址是QQ邮箱,smtp.qq.com。

      e. 此服务器要求安全连接(SSL),打勾。

      f. 基本身份验证:用户名为电子邮箱地址;密码为授权码。

    SQL Server配置邮件服务器-冯金伟博客园

    2.5 录入完成后,可看到smtp账户列表。

    SQL Server配置邮件服务器-冯金伟博客园

    2.6 接下来需要选择安全公共配置,选中刚才配置的文件名,然后后面默认为配置文件,建议选“否”,可根据实际情况配置。

    SQL Server配置邮件服务器-冯金伟博客园

    2.7 默认配置文件选“否”后,可根据实际情况修改系统参数。

    SQL Server配置邮件服务器-冯金伟博客园

  3、测试数据库邮件。

    3.1 在数据库界面测试,如下图

    SQL Server配置邮件服务器-冯金伟博客园

    在收件人处输入收件人邮箱即可。

    SQL Server配置邮件服务器-冯金伟博客园

    3.2 通过SQL脚本测试。 

    EXEC msdb.dbo.sp_send_dbmail
      @profile_name = ‘Test’,       –配置文件名称
      @recipients = ‘123@QQ.com’,    –收件email地址
      @subject = ‘你好’,         –邮件主题
      @body = ‘…’            –邮件正文内容

二、实现JOB任务运行状态的检测  

使用SQL Server时,很多情况下都需要自定义Job进行部分功能的实现,而大部分时间是采取凌晨或者非业务期进行工作。

因而Job的运行结果的检测便形成了一个需要跟踪的问题,比如有时候N个Job的运行,只有几个出现问题,并且不确定的此Job发生在那个机器上,所以自动化运维的重要性就不言而喻了。

对于上面问题的解决,SQL Server提供了很简单的配置便可以实现。

  1、定义操作员

  SQL Server配置邮件服务器-冯金伟博客园

  备注:

    a. 姓名:操作员的姓名,可以是别名。

    b. 电子邮件名称:邮箱的地址。

    c. 寻呼值班计划:可根据实际情况设置时间

  SQL Server配置邮件服务器-冯金伟博客园

  2、新建警报:定义警报属性等。

  备注:

    a. 名称:在JOB属性设置时会用到。

    b. 数据库名称

  这里面的严重性选项其实是一个很重要的功能,一些简单的问题警告有时候是不需要及时关注的,或者说不需要暂时处理的。但是有些问题则需要里面去解决,比如服务器宕等。

  SQL Server配置邮件服务器-冯金伟博客园

  备注

    a. 执行作业:如果有多个作业的话,需选择具体的作业;如新建,可点击新建作业按钮。

    b. 通知操作员:选择需通知的操作员,可多个。

  SQL Server配置邮件服务器-冯金伟博客园

  3、设置SQL Server代理,在属性中选择警报系统。

  SQL Server配置邮件服务器-冯金伟博客园

  备注:

    a. 选择是否启用配置文件,邮件系统选择了数据库邮件,邮件配置文件可选择具体的配置。

    b. 启用防故障操作员

  SQL Server配置邮件服务器-冯金伟博客园

  4、新建作业

  SQL Server配置邮件服务器-冯金伟博客园

  SQL Server配置邮件服务器-冯金伟博客园

  5、运行结果

  SQL Server配置邮件服务器-冯金伟博客园

  SQL Server数据功能还是很强大的,这里简单实现了发邮件的功能,可以灵活运用。