SQL Server 郵箱告警配置

目錄

一、配置數據庫郵件

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 = '[email protected]', //實際配置時需將 [email protected] 更換成實際郵箱地址
    @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 成功發送想要的信息 。