利用SQL Server數(shù)據(jù)庫郵件服務(wù)實現(xiàn)監(jiān)控和預(yù)警
背景
現(xiàn)在越來越多的企業(yè)、公司要求對于數(shù)據(jù)庫實現(xiàn)7*24小時的數(shù)據(jù)庫監(jiān)控,一般情況下采用的就是第三方的平臺來實現(xiàn)郵件和手機短信的監(jiān)測提醒。前幾日公司新上了一臺服務(wù)器,急于部署程序還沒來得及搭建其他相關(guān)平臺,為了更好的監(jiān)控數(shù)據(jù)庫,暫時用SQL Server自帶的郵件服務(wù)來實現(xiàn)對數(shù)據(jù)庫的監(jiān)控和預(yù)警。下面簡要介紹下配置的過程便于以后使用。
配置郵件
整個部分的核心就是配置郵件服務(wù),這部分需要一個郵件賬戶以及相應(yīng)的郵件服務(wù)器。下面就以QQ的郵件為例進行說明。
1.設(shè)置郵件服務(wù)器
開啟SMTP服務(wù),點擊開啟,然后點擊下方的生成授權(quán)碼,獲得授權(quán)碼就是數(shù)據(jù)庫發(fā)送郵件賬號的密碼。
2.配置數(shù)據(jù)庫郵件
打開MSSM---管理--》數(shù)據(jù)庫郵件--》郵件配置數(shù)據(jù)庫郵件—》如下選擇
點擊下一步后按照步驟123進行配置。
首先創(chuàng)建賬戶如下:
使用創(chuàng)建的賬戶作為配置賬戶
接下來需要選擇安全公共配置,選中剛才配置的文件名,然后后面默認(rèn)為配置文件
然后,可以修改“配置系統(tǒng)參數(shù)”,比如賬戶重試次數(shù),禁止的附件文件擴展名,單擊下一步,,默認(rèn)配置即可:
都完成后會顯示如下四個成功狀態(tài):
這樣配置郵件服務(wù)就完成了可以右鍵“數(shù)據(jù)庫郵件”點擊測試郵件。也可以代碼執(zhí)行
發(fā)送郵件
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'XXXX', --配置文件名稱 @recipients = 'XXX@QQ.com', --收件email地址 @subject = '你好', --郵件主題 @body = '…' --郵件正文內(nèi)容
執(zhí)行完畢后可以通過錯誤日志下面的郵件日志來查看詳細(xì)情況。如果收到了郵件那么就可以進行下一步對于數(shù)據(jù)庫的監(jiān)控了,這里介紹兩種一種是job的指定監(jiān)控還有一種是警報監(jiān)控。
job自定義語句監(jiān)控
1.創(chuàng)建作業(yè),核心就是在步驟中加入對指定數(shù)據(jù)的監(jiān)測超過時觸發(fā)通知。這里通過一個raiseerror 即可:
2.配置通知,當(dāng)失敗是發(fā)送電子郵件。
2.警報監(jiān)控[code]何為警報:MS SQL SERVER自動將發(fā)生的事情記錄在Windows的程序日志中。SQL SERVER AGENT會自動監(jiān)視由SQL SERVER記錄的程序執(zhí)行日志,如果找到符合定義的Action發(fā)生,將拉響響應(yīng)事件的警報。
警報的機制如圖
忘記哪里的圖了
機制理解:
要創(chuàng)建不同級別的警報,就必須得將錯誤寫到Windows時間日志中。這個不難理解。因為在警報概念部分我們已經(jīng)說了,SQL SERVER代理是從事件日志上讀取錯誤信息。當(dāng)SQL SERVER代理讀取了事件日志并在此發(fā)現(xiàn)了新錯誤時,就會搜索整個數(shù)據(jù)庫來尋找相應(yīng)的警報。一旦SQL SERVER代理發(fā)現(xiàn)了Match的警報,將立即激活該警報,從而通知相關(guān)人員或者根據(jù)Job的設(shè)定來做出相應(yīng)的反應(yīng)。
簡要配置如下,主要有三種監(jiān)控類型:事件警報/性能警報/WMI警報,這里就不一一介紹了舉例一個說明
可以選擇警報類型,針對數(shù)據(jù)庫和嚴(yán)重性中選擇監(jiān)測內(nèi)容比如權(quán)限不足,當(dāng)發(fā)生權(quán)限不足時報警:
如下圖所示,可以設(shè)定發(fā)生警報時向哪些操作員進行通知。點擊新增操作員按鈕,可以完成添加警報通知的操作員,選擇電子郵件即可
如下圖所示,可以設(shè)定警報錯誤發(fā)送的方式,可以選擇[E-mail]、[Pager]、[Net send]復(fù)選框(可多選),同時可以填寫在發(fā)送警報的同時給出的通知消息,并能夠?qū)憫?yīng)的間隔時間進行設(shè)定。
總結(jié)
由于平時習(xí)慣了第三方平臺的使用所以很少配置郵件服務(wù),近日嘗試一下以后發(fā)現(xiàn)如果服務(wù)器網(wǎng)絡(luò)通暢或者內(nèi)網(wǎng)服務(wù)完整,使用該服務(wù)還是很方便的,而且畢竟是微軟自己的東西對于很多指標(biāo)的監(jiān)控也比較快捷到位。需要主要的是該功能對于權(quán)限的要求比較高,有時候需要調(diào)整用戶權(quán)限等等才可以正常發(fā)送郵件。當(dāng)沒有第三方發(fā)送預(yù)警平臺時可以考慮這種方式,是很不錯的體驗。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 查找sqlserver查詢死鎖源頭的方法 sqlserver死鎖監(jiān)控
- SQL Server 監(jiān)控磁盤IO錯誤,msdb.dbo.suspect_pages
- Windows下使用性能監(jiān)視器監(jiān)控SqlServer的常見指標(biāo)
- SQL Server中使用Trigger監(jiān)控存儲過程更改腳本實例
- Sql Server 死鎖的監(jiān)控分析解決思路
- Zabbix監(jiān)控SQL Server服務(wù)狀態(tài)的方法詳解
- 通過Python實現(xiàn)對SQL Server 數(shù)據(jù)文件大小的監(jiān)控告警功能
- zabbix監(jiān)控sqlserver的過程詳解
- SQL Server服務(wù)器監(jiān)控
相關(guān)文章
SqlServer Mysql數(shù)據(jù)庫修改自增列的值及相應(yīng)問題的解決方案
這篇文章主要介紹了SqlServer Mysql數(shù)據(jù)庫修改自增列的值及相應(yīng)問題的解決方案的相關(guān)資料,需要的朋友可以參考下2016-01-01向數(shù)據(jù)庫中插入數(shù)據(jù)并返回當(dāng)前插入的行數(shù)及全局變量@@IDENTITY應(yīng)用
向數(shù)據(jù)庫中插入數(shù)據(jù)并返回當(dāng)前插入的的行數(shù),這項功能很實用的可以判斷是否為批量插入主要是利用全局變量@@IDENTITY實現(xiàn),感興趣的朋友可以了解下啊,希望本文對你鞏固sql知識很有幫助的2013-01-01使用NotePad++錄制宏功能如何快速將sql搜索條件加上前后單引號
這篇文章給大家介紹使用NotePad++錄制宏功能如何快速將sql搜索條件加上前后單引號,對notepad 引號問題感興趣的朋友可以參考下本篇文章2015-10-10MSSQL中進行SQL除法運算結(jié)果為小數(shù)卻顯示0的解決方法
這篇文章主要介紹了MSSQL中進行SQL除法運算結(jié)果為小數(shù)卻顯示0的解決方法,需要的朋友可以參考下2015-10-10SQLserver中用convert函數(shù)轉(zhuǎn)換日期格式的方法
SQL Server中文版的默認(rèn)的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm,整理了一下SQL Server里面可能經(jīng)常會用到的日期格式轉(zhuǎn)換方法2013-01-01