隨著IT技術的發展,企業的應用系統越來越復雜,數據庫作為應用系統基礎的組成部分,其重要性不言而喻。
對于企業而言,一旦數據庫崩潰或者數據庫的性能降低,那么會直接導致依賴于數據庫的應用系統運行速度緩慢或者根本無法使用,其最終結果不僅僅是會影響應用系統的使用效率,甚至會造成企業客戶和利潤的流失。因此,合理、安全、完善的數據庫監控工作是至關重要的。要做好監控,使監控真正有效,我們需要遵守必要的指導原則。有些人疲于奔命地花了很多時間做監控,但結果還是漏洞百出,不如人意,原因就在于他們忽視了監控的基本原則。根據我的經驗,監控工作中我們應該遵守以下原則:
1)堅持預防為主的原則。很多人往往等到業務部門報告出問題,或者系統已經出現嚴重事故(比如宕機)時,才想到要事先做好監控,而這時已經造成了損失。要知道,一個好的DBA是能夠在出現問題時快速解決問題,而一個優秀的DBA是要在問題出現之前避免問題的發生,保證系統無故障運行。
2)運維人員要充分了解數據庫系統的原理、架構等。如果不懂得原理、架構,在面對以前沒有遇到過的問題時,只能通過盲目“試”的方法來解決問題,這樣做是非常低效和危險的。只有理解了內在原理、架構,才可能準確分析監控時遇到的各種現象,并作出正確的決策。
3)要做好應急預案,切忌盲目自信。在IT系統中,沒有完全可靠的硬件,也沒有完全可靠的軟件。小心使得萬年船,運維人員應該時刻準備好備用方案,并通過定期檢查(比如進行啟用備用系統的演練),確保備用方案可用。
4)在系統上線和新老系統割接等重要時段要做好有針對性的重點監控。在系統上線時,因為系統的參數設置、應用程序設計等還沒有經過實際業務負載的充分檢驗,所以要關注系統資源(如CPU、I/O、內存等)和數據庫狀態(如緩沖池、鎖等),分析其中暴露的問題;在老系統擴容時,需要進行割接上線,這時要重點監控系統狀態隨業務量改變的變化趨勢,分析上線后的系統能否滿足業務需求。
5)在系統有任何環境上的變化時,比如軟件升級、硬件升級、新功能啟用(例如啟用DB2的數據壓縮、MDC等功能)以及參數重新設定等,都要比平時更加密切地監控系統。
6)監控過程中不能只關注數據庫。數據庫是運行在存儲、主機和操作系統基礎上,而為業務系統服務的。整個系統中的任何一部分出問題都可能波及數據庫的運行。在數據庫中表現出來的問題,其根源也許在系統的其他層次上。所以數據庫的運維人員應該對存儲、主機、操作系統以及上層應用程序的架構有所了解,而且當懷疑問題跟這些層次有關時,能夠及時找到相關負責人員解決問題。
7)監控流程的設計和執行也是體現運維人員能力的一個很重要的方面。我們應該對各種可能出現的情況制定具體的監控和問題應對流程,這樣才不會有病亂投醫。一個合格的運維人員,不但要關注每天做了哪些監控,更要關注監控的流程是否得到很好的貫徹執行。
8)熟練使用各種監控工具,是運維人員順利完成監控工作的保證。無論是DB2的自有監控工具還是第三方監控工具,均各有所長,我們要根據具體的監控任務和工具本身的特性進行選擇。