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