程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 利用SQL Server數據庫郵件服務實現監控和預警

利用SQL Server數據庫郵件服務實現監控和預警

編輯:關於SqlServer

背景

現在越來越多的企業、公司要求對於數據庫實現7*24小時的數據庫監控,一般情況下采用的就是第三方的平台來實現郵件和手機短信的監測提醒。前幾日公司新上了一台服務器,急於部署程序還沒來得及搭建其他相關平台,為了更好的監控數據庫,暫時用SQL Server自帶的郵件服務來實現對數據庫的監控和預警。下面簡要介紹下配置的過程便於以後使用。

配置郵件

整個部分的核心就是配置郵件服務,這部分需要一個郵件賬戶以及相應的郵件服務器。下面就以QQ的郵件為例進行說明。

1.設置郵件服務器

開啟SMTP服務,點擊開啟,然後點擊下方的生成授權碼,獲得授權碼就是數據庫發送郵件賬號的密碼。

2.配置數據庫郵件

打開MSSM---管理--》數據庫郵件--》郵件配置數據庫郵件—》如下選擇

點擊下一步後按照步驟123進行配置。

首先創建賬戶如下:

使用創建的賬戶作為配置賬戶

接下來需要選擇安全公共配置,選中剛才配置的文件名,然後後面默認為配置文件

然後,可以修改“配置系統參數”,比如賬戶重試次數,禁止的附件文件擴展名,單擊下一步,,默認配置即可:

都完成後會顯示如下四個成功狀態:

這樣配置郵件服務就完成了可以右鍵“數據庫郵件”點擊測試郵件。也可以代碼執行

發送郵件

EXEC msdb.dbo.sp_send_dbmail
 @profile_name = 'XXXX',   --配置文件名稱
 @recipients = '[email protected]', --收件email地址
 @subject = '你好',     --郵件主題
 @body = '…'   --郵件正文內容

執行完畢後可以通過錯誤日志下面的郵件日志來查看詳細情況。如果收到了郵件那麼就可以進行下一步對於數據庫的監控了,這裡介紹兩種一種是job的指定監控還有一種是警報監控。

job自定義語句監控

1.創建作業,核心就是在步驟中加入對指定數據的監測超過時觸發通知。這裡通過一個raiseerror 即可:

2.配置通知,當失敗是發送電子郵件。

 

2.警報監控[code]何為警報:MS SQL SERVER自動將發生的事情記錄在Windows的程序日志中。SQL SERVER AGENT會自動監視由SQL SERVER記錄的程序執行日志,如果找到符合定義的Action發生,將拉響響應事件的警報。

警報的機制如圖

]

忘記哪裡的圖了

機制理解

要創建不同級別的警報,就必須得將錯誤寫到Windows時間日志中。這個不難理解。因為在警報概念部分我們已經說了,SQL SERVER代理是從事件日志上讀取錯誤信息。當SQL SERVER代理讀取了事件日志並在此發現了新錯誤時,就會搜索整個數據庫來尋找相應的警報。一旦SQL SERVER代理發現了Match的警報,將立即激活該警報,從而通知相關人員或者根據Job的設定來做出相應的反應。

簡要配置如下,主要有三種監控類型:事件警報/性能警報/WMI警報,這裡就不一一介紹了舉例一個說明

可以選擇警報類型,針對數據庫和嚴重性中選擇監測內容比如權限不足,當發生權限不足時報警:

 如下圖所示,可以設定發生警報時向哪些操作員進行通知。點擊新增操作員按鈕,可以完成添加警報通知的操作員,選擇電子郵件即可

 

如下圖所示,可以設定警報錯誤發送的方式,可以選擇[E-mail]、[Pager]、[Net send]復選框(可多選),同時可以填寫在發送警報的同時給出的通知消息,並能夠對響應的間隔時間進行設定。

 

總結

由於平時習慣了第三方平台的使用所以很少配置郵件服務,近日嘗試一下以後發現如果服務器網絡通暢或者內網服務完整,使用該服務還是很方便的,而且畢竟是微軟自己的東西對於很多指標的監控也比較快捷到位。需要主要的是該功能對於權限的要求比較高,有時候需要調整用戶權限等等才可以正常發送郵件。當沒有第三方發送預警平台時可以考慮這種方式,是很不錯的體驗。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved