背景
現(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è)郵件賬戶以及相應(yīng)的郵件服務(wù)器。下面就以QQ的郵件為例進(jìn)行說(shuō)明。
1.設(shè)置郵件服務(wù)器
![](/d/20211017/e3154638821f56039dfa9926fe247e7f.gif)
開(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ù)郵件—》如下選擇
![](/d/20211017/6c4f39b1f63dc385953a3244a8000cad.gif)
點(diǎn)擊下一步后按照步驟123進(jìn)行配置。
首先創(chuàng)建賬戶如下:
![](/d/20211017/b9c93bb2ea9e3de70c27e7e0e0b9c77c.gif)
使用創(chuàng)建的賬戶作為配置賬戶
![](/d/20211017/21b9d27a5754d74d6aff66fed7c592d6.gif)
接下來(lái)需要選擇安全公共配置,選中剛才配置的文件名,然后后面默認(rèn)為配置文件
![](/d/20211017/f34bb9ac2458757bb4eefd8389b724f6.gif)
然后,可以修改“配置系統(tǒng)參數(shù)”,比如賬戶重試次數(shù),禁止的附件文件擴(kuò)展名,單擊下一步,,默認(rèn)配置即可:
![](/d/20211017/dc1672ffef1d944024738d66cdfe4ebf.gif)
都完成后會(huì)顯示如下四個(gè)成功狀態(tài):
![](/d/20211017/f42455a1ce5ce2558c0713f1a27f490c.gif)
這樣配置郵件服務(wù)就完成了可以右鍵“數(shù)據(jù)庫(kù)郵件”點(diǎn)擊測(cè)試郵件。也可以代碼執(zhí)行
發(fā)送郵件
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'XXXX', --配置文件名稱
@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 即可:
![](/d/20211017/3aae1fccefb2cf75f9d7fa56d8b2126d.gif)
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ī)制如圖
]![](/d/20211017/3c24a2b001f7c197a7b8553d042bb8f1.gif)
忘記哪里的圖了
機(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)控類型:事件警報(bào)/性能警報(bào)/WMI警報(bào),這里就不一一介紹了舉例一個(gè)說(shuō)明
可以選擇警報(bào)類型,針對(duì)數(shù)據(jù)庫(kù)和嚴(yán)重性中選擇監(jiān)測(cè)內(nèi)容比如權(quán)限不足,當(dāng)發(fā)生權(quán)限不足時(shí)報(bào)警:
![](/d/20211017/58d2521d04b5ddaa215b25f3ee802024.gif)
如下圖所示,可以設(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)整用戶權(quán)限等等才可以正常發(fā)送郵件。當(dāng)沒(méi)有第三方發(fā)送預(yù)警平臺(tái)時(shí)可以考慮這種方式,是很不錯(cuò)的體驗(yàn)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 查找oracle數(shù)據(jù)庫(kù)表中是否存在系統(tǒng)關(guān)鍵字的方法
- Access數(shù)據(jù)庫(kù)中“所有記錄中均未找到搜索關(guān)鍵字”的解決方法
- 數(shù)據(jù)庫(kù)刪除完全重復(fù)和部分關(guān)鍵字段重復(fù)的記錄
- Linux 自動(dòng)備份oracle數(shù)據(jù)庫(kù)詳解
- myeclipse中連接mysql數(shù)據(jù)庫(kù)示例代碼
- Myeclipse連接mysql數(shù)據(jù)庫(kù)心得體會(huì)
- MyEclipse連接MySQL數(shù)據(jù)庫(kù)圖文教程
- python爬取NUS-WIDE數(shù)據(jù)庫(kù)圖片
- 記一次mariadb數(shù)據(jù)庫(kù)無(wú)法連接
- 數(shù)據(jù)庫(kù) 關(guān)鍵字一覽表