寫給資料庫運維的兄弟

z_cloud_for_SQL發表於2023-04-04

   習慣至深入

  在很多次和運維人員交流的過程中發現,我知道的名詞和他知道的名詞完全不是一個東西!比如:死鎖,接觸的很多技術人員把阻塞理解成死鎖。同樣提到索引,他會說:“不用講,這我都懂!”,那麼什麼是聯合索引,什麼是覆蓋索引?覆蓋索引怎麼能降低你的死鎖機率?這時他的反應才是:哦...原來還可以這樣,原來還有這麼多東西!

  模擬一個場景,領導開會的時候問你如下問題:

  領導問:

  • 資料庫有多大 ?每天增長多少 ?

  • 高峰時間卡慢麼 ? 為什麼慢 ? 資料庫問題還是軟體或硬體?

  • 系統中那些語句慢 ? 慢到什麼程度?

  • 系統中哪些資源是瓶頸 ?

  • 存在死鎖情況麼?怎麼產生的?

  • 有什麼潛在風險 ?

  • 怎麼解決 ?

  很多人運維人員的回答可能是:

  。。。。。。。。。。

  而問題發生的時候可能發生的情況就是這樣的:  

問題 你是哪一類?

  背景:今天,資料庫普遍存在問題,如:效能問題、安全問題、可靠性問題、資料備份問題、結構設計問題等。


 

  結論:

  1. 當出了問題時,使用者不知道是誰的原因,系統的真實狀況如何?

  2. 問題一大堆,多數人沒意識到是資料庫問題,很多人想弄但不會弄,還有一部分人會弄但傳統的方法不方便。


問題 6  你是下面哪個角色?



你是否像救火隊員?犧牲著自己的休息時間隨叫隨到的運維著你的系統?你是否像拆彈兵一樣維護著一個隨時爆炸的系統?你是否又像一個保姆,寸步不離的呵護著你的系統?

問題 7  是否有這樣的痛

  • 人手有限,往往身兼數職(網管、專案管理、協調廠商、DBA、應用、寫報告),既有很多協調性的管理工作,又有一些專業技術工作,尤其是資料庫,短時間是很難深入掌握的。

  • 自己開發系統,擅長程式開發,對於資料庫,瞭解的不深,更多的是業務邏輯,比如表結構設計、如何寫儲存過程等,導致後期很多業務存在效能瓶頸。

  • 買的軟體廠商的,在他們的行業裡,IT運維人員對系統進行的往往是簡單維護,做的最多的是和業務功能相關的事情,很多資料庫的專業問題困擾著他們,招聘資料庫專家吧,人家不來,自己解決吧,又很吃力,尋求廠商,他們也沒有好的方案,整合商就是換硬體。

  • 問題

問題 怎麼辦?


  可能不少看官就是上面的一員,但是又很迷惑,我該怎麼辦?我要從頭深入學習資料庫?學個幾年到精通?當然不現實,下面就說一說我從業十年從小白到技術支援的感悟。

其實資料庫運維很簡單!你只需要有一個好的工具,瞭解常規的運維套路,常規的系統指標,和常規的問題排查方式,這樣已經可以解決80%的問題。如果出現搞不定的20%你需要的資料庫專業人員的協作。


                                                                   深入學習

    如果對技術感興趣想在資料庫這條路上長久的走下去,並且也想成為獨擋一面的大神,那麼耐下心來看書學習是必經之路,並且在實際的專案中不斷積累慢慢的在坑中成長。

自己的SQL學習之路有好多個Level下面具體說一說:

  LV1 :程式開發中寫過大量比較複雜邏輯的SQL語句,報表查詢,如2000行以上的儲存過程,儲存過程巢狀儲存過程等等。

寫過這種複雜SQL程式的開發人員也許都會有一種 我資料庫已經無敵了什麼都會了的感覺。

在專案中特別愛寫SQL,有的老員工一些複雜SQL也會讓你幫忙。

  這個時候的感覺真好!

  LV2 :開始學習SQL語句的最佳化,慢慢開始分析執行計劃。

雖然執行計劃看的不是很明白但是已經知道語句慢在哪裡,知道使用索引,臨時表等一些簡單的最佳化手段。

慢慢的知道了什麼是快取計劃,什麼是引數嗅探。

SQL語句幾分鐘變成幾秒鐘,感覺真奇妙~~哈哈~~

  LV3 :開始學習資料庫體系架構瞭解原理,學習使用系統表檢視檢視當前狀態

這個階段是痛苦而漫長的需要看大量的書動手實踐也是必不可少的。

當看完2005技術內幕的4本書,可以給身邊的人從原理講講什麼是SQL 怎麼執行的~飄飄的感覺又來了。

這個階段是興奮又迷茫的,感覺自己會了很多東西但與此同時又感覺到自己什麼都不會了...

  LV4 :幾條線開始顯現出來,SQL開發,最佳化,叢集技術,故障排查。

很多SQL開發的 應用。

profiler、perfmon的基本應用(雖然很多引數指標看不懂)、能讀懂較為簡單的執行計劃並根據情況做語句最佳化。

能搭建事務日誌傳輸、映象、釋出訂閱、故障轉移群集。

簡單的故障可以解決。

我就走上了初級DBA的道路....

  LV5 :依然不斷學習SQL原理,深扣細節,多看部落格文章自己動手模擬情景。

瞭解更多的資料庫功能應用。出現問題有更多的知識儲備處理問題。

熟悉常規套路,找出的系統瓶頸及有哪些處理辦法,語句的最佳化提示等等。

漫長漫長又漫長的積累經驗。

    LV6 :作為技術支援,見過上百家客戶的系統,見過大量的情景,依然不斷的積累經驗。

                                                                   協作運維

    已經過去的2016年被稱為VR元年、intelligence元年,其實也是IT運維的元年,國內協作運維服務已經熱起來,專業的人幹專業的事兒,也許這樣的第三方運維引入可以解決上面的問題,協作運維的好處不用過多說明,即可節約成本,又能找到專業的人做專業的事情,使用者和廠商只需要關注自身業務,而不需要過多的參與到細節的運維工作中。

很多 企業已經先行嚐到了這種你好,我好,他也好的甜頭。


                                                               工具化運維


     所謂工欲善其事必先利其器,各行各業都一樣,一款合手適用的工具幫助提高效率,節約成本,在專業領域運維中尤為突出。以我們的”SQL專家雲“來說,數十位優秀的SQL Server領域專家根據自身運維技術經驗,打造出的SQL Server體檢、診斷、監控一體化平臺,用專業與專注解放IT運維人。


小感悟

 運維三步走:

  發現問題

  解決問題

  預防問題


親身處理了上百家客戶的系統,大部分系統資料庫都存在著各種資料庫問題,而資料庫問題往往被忽視,直接被歸結為軟體的問題,廠商的問題!

  資料庫應該被我們重視起來,很多時候只是在資料庫上做一些常規的配置或簡單的最佳化,就能讓系統有幾倍甚至幾十倍的提升,而這些最佳化可能只是簡簡單單的資料庫層面完全不用改程式碼的行為!

  系統運維需要定期體檢,這點真心希望運維人員能夠重視起來,也真心希望系統運維人員可以加深一下對資料庫的瞭解,多掌握一些常規的手段和必要的運維策略。


北京格瑞趨勢科技有限公司是聚焦於資料服務的高新技術企業,成立於2008年,創始團隊及核心技術人員來自微軟和雅虎。微軟資料平臺合作伙伴,衛寧健康資料平臺戰略合作伙伴。透過產品+服務雙輪驅動的業務模式,14年間累計服務4000+客戶,覆蓋網際網路、市政、交通、電信、醫療、教育、電力、製造業等各個領域。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70023658/viewspace-2943707/,如需轉載,請註明出處,否則將追究法律責任。

相關文章