目錄(?)
[+]
作為核心it業務模組,資料庫的重要性毋庸置疑,資料庫的穩定執行直接關係到應用系統的可用、穩定、高效性。因此,為確保資料庫穩定、高效的執行,我們需要面臨如下兩個挑戰
1. 資料庫執行過程中的危險因子,怎麼及時發現?
2. 資料庫發生故障或因某些原因導致處於不正常工作狀態時,怎樣及時發現?
為了解決上述的兩個難點,必須建立資料庫監控體系,7*24實時監控資料庫的執行狀態,在資料庫即將出現問題或已經出現問題時,通過立即觸發事件來及時預警,使運維人員能夠及時予以處理,確保資料庫穩定、高效的正常執行
解釋說明
(1) 生產庫代表對外提供服務的線上資料庫,即需要進行監控的資料庫
(2) 監控資料採集資料庫,集中抽取每乙個生產庫的監控資料並儲存(通過排程任務定時完成),並且將達到預警閥值的監控資料,經過加工處理後傳送至「告警推送伺服器」
(3) 告警推送伺服器,接受來自「監控資料採集資料庫」的預警資料,通過郵件傳送程式,將預警資訊以郵件形式及時傳送給運維人員
當前資料庫監控體系中部署的監控種類以及其它一些屬性如下**
序號
監控種類
監控頻率
備註1
oracle資料庫undo表空間使用率告警
10分鐘
監控undo表空間使用情況
2oracle資料庫temp表空間使用率告警
10分鐘
監控temp表空間使用情況
3oracle資料庫序列使用率告警
每天上午9點
監控序列使用清理
4oracle資料庫連線數異常告警
10分鐘
監控資料庫連線數情況
5oracle資料庫表空間使用率告警
20分鐘
監控資料庫表空間使用情況
6oracle資料庫會話undo使用量告警
5分鐘監控會話undo使用情況
7oracle資料庫使用者密碼過期告警
每天上午9點
監控使用者密碼過期情況
8oracle資料庫pga使用率告警
10分鐘
監控資料庫pga使用情況
9oracle資料庫鎖異常告警
5分鐘監控資料庫內鎖資源爭用情況
10oracle資料庫共享池使用告警
10分鐘
監控資料庫共享池使用情況
11oracle資料庫活動連線數告警
2分鐘監控資料庫兩分鐘類活動連線情況
12oracle資料庫索引異常告警
30分鐘
監控資料庫索引狀態情況
13oracle資料庫效能告警
1分鐘監控資料庫效能情況
14oracle資料庫通斷告警
1分鐘監控資料庫可用性情況
15oracle日誌監控告警
10分鐘
監控資料庫執行日誌情況
備註由於**篇幅所限,一些其它屬性將在後續體現,例如每一監控種類的閥值等等屬性
凡事不可能完美,資料庫監控體系也一樣,目前搭建完成的資料庫監控體系架構,受專業和能力受限,存在如下不足
1. 及時性,無法以語音形式將告警資訊通知運維人員(**方式),目前只能以郵件形式傳送告警資訊,因此肯定告警資訊肯定存在延遲發現,特別是晚上時間段;
2. 健壯性,資料庫監控體系架構中的「生產庫」和「監控資料採集資料庫」都已部署通斷告警,但是「告警郵件推送伺服器」(資料庫)由於暫時沒有完成自監控,在出現問題時,會導致整個監控體系奔潰而不能及時發現(當前只能每天早上9點和6點傳送一條監控執行狀態郵件來自檢)
3. 專業性,由於程式設計能力有限,資料庫監控體系完成後,肯定存在很多bug和未知缺陷,沒有經過長期的執行和考驗,無法進一步完善
4. 全面性,當前僅部署了15個種類的監控(根據經驗實施),由於系統具體特殊性,肯定存在監控盲點,需要後續執行過程中才能一步一步完善
當前已經搭建完成的資料庫監控體系架構特點如下
1. 告警資訊通過郵件傳送和接收(139郵箱),進一步通過手機簡訊接收郵件通知和內容
2. 每乙個監控種類都是通過乙個單獨的程式包完成,任何乙個監控種類出現異常時(調整或出現bug),不影響其它監控種類的正常執行
3. 每乙個生產庫的監控資料採集都是通過乙個「監控資料庫配置表」控制,可以通過修改flag欄位來控制對應生產庫的監控資料採集與否,進一步控制該生產庫告警與否
4. 每乙個監控種類的資料採集都是通過乙個「監控種類配置表」控制,可以通過修改flag欄位來控制對應生產庫的相應監控種類的監控資料採集與否
5. 通過「監控閥值配置表」可以實現對於同一類別監控,可以根據系統的重要級別,設定不同的監控閥值。即每乙個監控種類可以通過修改監控閥值字段,個性化設定監控類別的監控閥值,從而使不同資料庫的相同監控種類的可以設定不同告警閥值(為後續系統等級重要性設定不同閥值)
6. 通過「告警傳送配置表」可以實現採集監控資料(用於分析),但是不傳送告警資訊的目的
7. 所有的監控資料都通過「監控資料採集資料庫」統一採集、加工處理,最後傳送至「告警推送伺服器」,其中監控資料儲存最近半個月,用於分析和檢視
資料庫監控體系建設步驟簡單歸納為如下**
步驟
內容1
確定需要部署的監控種類
2在「監控資料採集資料庫」上配置所有待監控的資料庫的tns
3確認配置的tns準確性
4在所有待監控的資料庫上建立監控使用者
5在所有待監控的資料庫上建立監控查詢檢視
6隨即選取乙個待監控的資料庫登入,檢查「步驟四」建立的檢視的有效性
7在「監控資料採集資料庫」上建立資料採集使用者,同時建立指向所有待監控資料庫的database link,並驗證有效性
8在「監控資料採集資料庫」上建立資料採集表,針對每乙個監控類別建立乙個資料採集表
9在「監控資料採集資料庫」上建立幾張重要監控相關的配置表
10給上一步建立的各類配置表新增基本資料
11建立與告警傳送伺服器的通道,以資料庫方式建立通道聯絡
12建立所有監控資料採集程式和告警資料傳送程式
13建立定時排程任務,定時採集監控資料和傳送告警資訊
14建立郵件傳送程式,在「郵件傳送伺服器」上完成郵件傳送程式的部署
15建立「監控採集資料庫」的通斷監控,防止由於監控採集資料庫出現異常而導致整個告警體系崩潰的自檢
16監控「告警傳送資料庫伺服器「情況,這裡只部署為每天早上9點和晚上6點發出一次執行正常的郵件資訊
17資料庫alert日誌監控部署,由於alert日誌監控特殊性,單獨部署
18後續掃尾工作,定時清理監控資料,建立索引等
資料庫監控架構 一
資料庫服務數量不斷增多,需要考慮合適的監控了。這幾天忙裡擠時間,設計並實施了乙個簡易的資料庫監控系統,希望在以後使用中不斷完善,幾天先把架構原理貼在這,哪天有時間再把相應的文件附上 一 說明 監控很重要,它可以提前通知我們即將發生故障 這樣我們就可以避免問題的發生或蔓延擴大 我們線上的環境中,資料庫...
Paddy 資料庫監控系列(一) 監控理念
很多時候,都和身邊朋友聊兩個問題,dba的日常工作都是哪些?什麼才是資料庫方面最重要的?我相信這兩個問題的答案每個人都不會完全一樣,我也是,所以這裡只代表我的個人觀點,並且以下的內容將圍繞我的思路展開,希望對大家有或多或少的幫助。a 資料庫的安裝部署 資料庫監控 資料庫優化 資料庫故障處理 其他a ...
mysql資料庫監控
方法一 netstat lanp grep tcp grep 3306 wc l 方法二 usr bin lsof i 3306 wc l 方法三 mysql u使用者名稱 p密碼 e select version dev null echo 判斷返回值 方法四 ps ef grep mysql g...