需求描述

      在SQL SERVER数据库生产环境中,大部分情况下需要有自己的运维体制,包括监控数据库状态触发告警。如果发生异常,通过邮件作为一种告警实现方式,在及时性和易用性方面也有着非常关键的优势。

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

一、邮件服务设置

  1、设置邮件服务器 

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

    

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

  2、配置数据库邮件

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

   

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

    

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

    

    2.4 新增数据库邮件账户

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

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

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

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

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

      f. 基本身份验证:用户名为电子邮箱地址;密码为授权码(谨记不是邮箱的密码,很容易搞错)。

    

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

    

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

    

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

    


      2.8在配置文件和账户完成后,需要开启邮件(这一步好像不是必须),具体如下:

  1. sp_CONFIGURE 'show advanced', 1
  2. GO
  3. RECONFIGURE
  4. GO
  5. sp_CONFIGURE 'Database Mail XPs', 1
  6. GO
  7. RECONFIGURE
  8. GO

  3、测试数据库邮件。

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

    

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

    

    3.2 通过SQL脚本测试。 

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