《Mysql學習解決問題方法論,技術人都應該學習的troubleshooting》要點:
本文介紹了Mysql學習解決問題方法論,技術人都應該學習的troubleshooting,希望對您有用。如果有疑問,可以聯系我們。
MYSQL應用
troubleshooting 是找到問題發生的根源并將其解決更正的過程,troubleshooting 的目標就是使設備 / 系統回到正常的工作狀態.MYSQL應用
因為很多系統,特別是 IT 系統或者一些電力系統、通訊系統,都是 7×24 小時不間斷運行的.如果一旦發生故障,就要求我們運維人員很快的發現故障,然后用快速和經濟的辦法去把這個故障解決掉.比如醫院有些支撐手術的系統,一旦故障如果不能很快解決的話,甚至會威脅到病人的生命安全.所以 troubleshooting 對我們運維人員來說是一項非常重要的技能和技術要求.MYSQL應用
不僅在工作中需要做 troubleshooting,生活中也會遇到.前段時間我跟著朋友在玩王者榮耀,就遇到了一個故障.每天晚上玩這個游戲大概 8、9 點鐘就遇到打著打著網絡質量變差,操作變得很卡.我很苦惱,作為一個運維人員,或者一個技術人員的本能,我就想網絡是什么問題?怎么把它解決掉?所以我就做了一次 troubleshooting 的過程.我對家里所有的無線網絡,聯通的寬帶做了一些測試,嘗試對無線路由器做了配置優化,最后定位到是我們家和鄰居附近 2.4G 信道太擁擠了,干擾太嚴重,所以晚高峰的時候大家都有上網需求,會互相干擾.后來我把信道切換到 5G,世界就清靜了,可以安心打游戲了.MYSQL應用
后來我就思考,有沒有非??茖W和規范的流程或方法,按照這個方法一步步做下來,就可以解決任何故障或問題?盡管問題多種多樣,實際問題解決的方式也是多種多樣,對于具體場景和問題,可以制定特定的問題解決流程.在具體的工作中,大家有做 SA 的,也有做網絡的,也有做 DBA 的,每一個特定的方向都會有一些跟專業和問題場景相關的 troubleshooting 方法.MYSQL應用
對于通用的問題,是否會有通用的解決方法和解決步驟可以遵循呢?MYSQL應用
這是 《troubleshooting and maintaining cisco IP network》 這本書的作者總結的一套相對一個通用的方法.他把 troubleshooting 整個過程分成了 7 個步驟,從定義問題,到收集線索和信息,到分析、假設、排除可能性,最終可以把問題解決掉.MYSQL應用
在一些復雜的系統或復雜問題的 troubleshooting 中,我們可以按照這個解決方法的流程對問題去做一些抽象和定義,然后一步一步來解決.MYSQL應用
在這個標準流程和方法之外,我們可能會遇到一些相對簡單或者更直觀的問題,可以使用一些具體的策略和小技巧來更快速的 troubleshooting.MYSQL應用
我們經常會遇到電視按了開關怎么沒反應?電腦怎么開不了了?這個問題有非常大的可能性是電源沒插,或者停電了.從這個事情引申出來,任何系統運行都需要一些必要的前提條件,或者叫先決條件.在系統或服務發生異常的時候,需要回過頭來了解一下這個系統有哪些依賴關系,有哪些先決的條件,這些條件是不是之前是存在和正常的,現在條件不滿足了,所以發生了一些故障.MYSQL應用
比如說摩托車在行駛過程中不走了,是不是沒油了?在一些非常成熟或者產品化做得非常好的產品,比如說 iphone 手機,它的用戶手冊里會列出正常運行的條件,以及要遠離哪些條件,比如高溫、低溫等,會做一個非常明確的定義.MYSQL應用
但是在一些自研系統的運維過程中,這些系統往往文檔和說明并不是特別完善,所以先決條件需要根據系統的異?;蛘邌栴}去做一些排查,另外也需要跟研發人員,或者是設計人員做一些深入的溝通,找到系統的一些先決條件,然后作為一個排查的線索去進行排查.這是第一個很基本的 troubleshooting 方法.每一個人都解決過類似的問題,大多數的問題往往是很普通的原因造成的,而我們的經驗和直覺可以幫助解決.MYSQL應用
我們進入下一個問題解決的策略,大家都有裝過電腦的經驗嗎?一套計算機系統有很多部件,比如 CPU、內存、電源、機箱、顯示器、光驅、鼠標、音響、網卡,等等.我們在裝機的時候并不是需要一次性全部裝好,往往是把電源,主板、CPU、內存裝好后,就可以試試這套系統能不能正常工作.如果這個系統能亮,說明這套系統最重要的部件是 OK 的.所以從 troubleshooting 的角度,在做故障定位的時候,可以嘗試把一個非常復雜,功能和組件非常多的系統,精簡到最基本的系統,測試沒問題后,再一件一件把其他的系統組件加進來,這樣就可以事半功倍的把這個問題找到并解決掉.MYSQL應用
另外一個跟第一種場景類似,系統經過長時間的運行,工作狀態不正常了,一般怎么解決呢?重啟一下.在我之前的前東家有一條不成文的規則,重要的系統在節假日前做排查,如果超過多少天沒有重啟,就會安排一次計劃中的重啟,來避免系統長時間的運行導致的異常的狀態.MYSQL應用
所以可以用一些重啟的方案來把故障恢復到系統初始的狀態,把這個故障解決掉,這是一個非常強有力的一個故障解決方法.當然,重啟前需要考慮預期外的后果,比如可能啟動失敗會導致更差的后果.除了重啟,還可以重裝 / 重建系統,從默認或正常工作的系統復制一個副本出來.MYSQL應用
當我們通過一些分析定位發現,故障可能發生在某個子系統或者某幾個模塊之內,有什么辦法能夠很快的定位問題呢?可以嘗試去更換其中一個部件,然后測試下.使用這個方法,可以通過排查一步一步精確定位到故障點,然后去解決.這為我們以后遇到類似的問題提供了寶貴的經驗.在使用這個方法的過程中,需要注意,每次只更換一個組件,測試完成后如果需要更換其他部件,首先要講之前更改的恢復原狀.否則可能會因為變更導致出現多個問題,影響和干擾問題的解決.MYSQL應用
troubleshooting 既是一門科學,也是藝術.除此之外,還可以嘗試復現問題、更改啟動和配置順序等等方法,在實踐中根據時間、資源、場景情況和限制,選擇最適合的策略,完成 troubleshooting.Happy troubleshooting!MYSQL應用
滕傳永,美團云架構師.先后在百度和 eBay 從事系統和服務運維工作,工作涉及基礎服務運維,大規模系統部署和優化,虛擬化等.12 年加入美團,負責運維工作,主要集中在基礎服務運維,數據中心和網絡建設,云計算環境建設和運維等方面.MYSQL應用
文章來自微信公眾號:高效開發運維MYSQL應用
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/3843.html