很多時候,都和身邊朋友聊兩個問題,DBA的日常工作都是哪些?什么才是數據庫方面最重要的?
我相信這兩個問題的答案每個人都不會完全一樣,我也是,所以這里只代表我的個人觀點,并且以下的內容將圍繞我的思路展開,希望對大家有或多或少的幫助。
Q1:DBA的日常工作都是哪些?A:
A: 穩定性
很多公司,DBA和管理的DB數量比,1:10算少的,1:50都不算多,1:100也見過,數據庫的優化、高可用、監控等等都是為了確保數據庫的穩定性,穩定性如果不能保證,其他的工作都無法順利開展,那么在保證穩定性的工作中,監控又顯的格外突出。我個人的看法,DBA日常80%的工作都是在監控DB,自動化必不可少,為了節約出你的79%的監控時間,你才有去安裝、優化、故障處理、配合開發人員工作的時間,那么80%中,還有1%去哪里了?答案就是人工監控將占據這1%。任何監控程序都永遠不能100%代替人工,就像你媽把你放在幼兒園,還會去了解你在幼兒園的情況一樣,所以你時不時需要人工看看你的DB的實際情況。
我將DB監控分為兩類:一、功能監控;二、性能監控。
我主張的是先保證功能,才有資格保證性能,連功能都不能保證的監控,不是好的性能監控。
市面上,有非常多的開源軟件,例如cacti、zabbix、nagios..,對于數據庫或者服務器的功能監控,基本還是調用的DMV、WMI來監控的,性能監控也基本都是圍繞性能計數器運行值監控,我的監控程序也一樣,不過有一點不同之處,就是基礎數據的收集及使用。
第三方監控程序我總結是基礎數據收集+計算基礎數據+計算后數據圖表展示。開源程序的普遍使用造就了一些人過于依賴的現象,大多數公司在招聘DBA的時候都不會問你如何使用第三方工具,而作為企業招聘者,更愿意招聘那些懂得如何收集基礎數據,如何計算基礎數據,如何展示計算后數據的人。
換言之,如何計算、如何展示,只要你有基礎數據,那么一切將不在話下。
簡單歸納下我的監控列表,在后面的文章里,我會分享下每一個是如何實現的。
一、功能監控
二、性能監控
三、如何利用SQL CLR+WMI進行Windows監控
四、報警:如何用SQL Server,達到短信報警和郵件報警的實現
通宵加班中,本次只能說到這里,以上只代表本人的想法,如果有不同意見,非常歡迎發來探討。
新聞熱點
疑難解答