李欣 劉穎 盧永剛 董明杰
“數據管理一直是任何關鍵任務IT計劃成功的關鍵。”—Gartner
作為IT業務的核心模塊,數據庫的重要性毋庸置疑,數據庫的穩定運行直接關系到應用系統的可用、穩定、高效性。因此,企業必須建立數據庫監控體系,7x24實時監控數據庫的運行狀態,在數據庫即將出現問題或已經出現問題時,通過立即觸發事件來及時預警,使運維人員能夠及時予以處理,確保數據庫穩定、高效的正常運行。
在國家電網分部信息化建設大力推進下,國網西北分部信息化建設步伐大大加快,目前已經建成十幾個重要業務系統,數據覆蓋了國網西北分部生產,經營,戰略,財務、運營等各方面的信息,幾乎所有的經營活動所依賴的信息普遍采用數據庫進行管理和存儲,這些數據庫的安全穩定運行是保障整個國網西北分部信息業務系統正常運行的基本條件。因此,數據庫的維護工作成為了保障業務穩定運行的重點內容。
目前國網西北分部數據庫診斷及調優工作,仍采用DBA手工分析管理的方式進行,問題的診斷與優化完全依賴于DBA的經驗,雖然能夠解決部分數據庫性能問題,但過分依賴人員經驗。不同DBA對于數據庫的診斷與調優結果不同,同時由于數據庫隱患排查手段不全,對于已經暴露的數據庫問題能夠進行故障診斷與優化,但對于一些隱藏的問題無法發現,對于數據庫的隱患全面排查工作難以開展,導致了數據庫內部仍然存在性能及功能隱患。
(一)建設目標
優化數據庫系統運維管理水平,實現數據庫的全面自動化監控、故障診斷預測、深層次故障分析、數據庫狀態統計報告、數據庫變更管理以及性能瓶頸分析以及優化建議管理,開展數據庫故障診斷和優化工具項目建設,使數據庫管理模式從原有的分散式的完全依賴DBA水平的管理方式轉變為集中的、統一、高效的管理模式,并建立數據庫的統一管理規范。
(二)需求調研
為滿足數據庫滿足國網西北分部內部多數據庫統一集中管理、故障診斷和優化的實際需要,數據庫智能巡檢系統需要滿足以下要求:
1.故障診斷預測功能
能夠監控數據庫配置變化等信息,可以提前發現性能瓶頸,及時通知管理人員,在告警到來之前就著手解決故障,防止故障蔓延、惡化,影響最終用戶。
2.深層次故障分析
通過7x24的實時收集數據,可以對任意時間段的故障問題進行語句級的深層次分析,相應使用資源的數據庫、程序、操作系統用戶、客戶端、數據庫用戶、上下文信息和命令類別等詳細的信息。
3.統計報告
可以隨時根據需要生成DBA所需要的負荷統計報告、活動報告、健康檢查報告以及與特定時間性能狀況與性能基線比較的報告。

4.變更追蹤/瓶頸分析/優化建議
可以追蹤變更數據,實現對數據庫全面的健康檢查,并按問題的優先級提供解決建議。
(三) 系統實現
1.系統架構
從系統功能可以將系統分為三層架構:
(1)采集服務
實現被監控數據庫的運行數據采集;
(2)應用服務
實現采集、分析任務的調度,完成對采集信息的實時分析,實現預警和告警,并提供對外訪問的接口與服務;
(3)數據存儲
用于存儲采集到的被監控數據庫的運行信息;
系統的架構具體如圖1所示。
2.功能結構實現
根據數據庫智能巡檢的需求,結合國網西北分部現有環境,采用目前成熟的遠程數據獲取技術,實現數據庫的全面監控與分析等功能。
(1)數據庫監控
以動態儀表圖進一步展現單個數據庫實例的性能,覆蓋數據庫實例各個組件與各種資源、活動的重要性能指標,依照組件、資源與活動結構布局清晰,實時指標數值和歷史曲線相結合。
(2)數據庫瓶頸分析
通過多維工作負載分析、鎖定和等待分析、變更跟蹤、I/O分析、執行計劃分析等功能,對SQL語句的性能消耗數據、執行頻率、是否存在鎖阻塞等方面進行深入的額分析和診斷,查找造成問題的根源SQL語句。
(3)數據庫SQL語句自動優化
運用人工智能技術,窮盡所有的可能的SQL改寫方法和數據庫的優化提示,輸出語意等價、語法正確的SQL語句列表;分析SQL語句的語法和SQL語句中表和表之間的關系,給出最適合的備選索引建議。
(4)空間問題探測
自動監控數據庫表空間和數據文件的配置和使用情況,針對使用百分比過高的表空間或者無法自動擴展的數據文件進行報警。
(5)容量規劃模塊
監控數據庫所有參數,并對參數的修改狀態進行追蹤顯示。
(6)變更追蹤
自動追蹤操作系統和數據庫的各種變更,并分析結合與之相關聯的性能狀態變化。
(7)告警監控
支持告警規則設置功能,提供包括報警條件、報警閾值、報警嚴重級別、報警提示信息、報警生效、實效時間段、報警動作的定制功能。
3.實施環境
本次數據庫智能巡檢系統建設主要部署數據庫響應分析模塊、數據庫結構分析和事務分析模塊以及集中管理展示平臺,實施環境如表1所示:
