導讀:運用結構化思惟進行故障處理,其目的是爲了將故障應急操做標準化,進而提高處理效率。前端
近期收到朋友贈送的一本書—《深刻淺出MySQL》。閒暇之餘,閱讀了部分章節,書中針對故障處理一節,給我印象頗深。書中提煉出的一些方法論,正是我以前在團隊中推廣的方法。其目的是爲了將故障應急操做標準化,進而提高處理效率。推而廣之,這實際上是一種結構化思惟在具體工做中的體現。而這種思想在某具體工做、乃至我的、團隊發展等,都可發揮重要做用。特寫下此文。數據庫
下面是來自網易的一些經驗,整理自《深刻淺出MySQL》一書。後端
1)溝通第一緩存
在數據庫出現故障時,務必和運維、開發、產品等其餘團隊保持高效溝通。DBA在遇到故障時,必定不要忘了溝通的重要性,即便時間緊迫,簡要的溝通每每也能帶來事半功倍的效果。從長遠來看,也有利於培養和其餘人、其餘團隊之間的合做和信任關係。框架
2)關注人爲運維
人爲故障佔有不小的比例。要經過及時溝通並查看歷史記錄,確認操做是否有誤、要和其餘團隊溝通是否有特殊操做。固然,解決人爲故障最好的方法仍是將數據庫運維自動化、標準化、規範化。工具
3)快速恢復測試
在處理故障的時候,要明確的一個思路是要優先恢復服務,確保服務的最大可用性,其餘的不必定要優先考慮。3d
4)三思後行日誌
有些故障處理方式,可能對數據庫形成難以恢復的影響,務必慎重,並儘可能作好備份。對於操做自己不熟悉帶來額外的問題,要儘可能避免。認真考慮命令可能帶來的後果,避免對系統形成二次傷害。
5)服務分級
平時應當對服務、應用、數據庫作好分級,一旦出現大面積故障,能夠按照服務的優先級來恢復核心業務。
1)故障發現
OS指標
DB指標
2)故障定位
檢查操做
檢查OS
檢查DB
1)慢SQL
2)SQL執行頻率高
3)鎖衝突
4)硬件問題
5)參數不合理
1.2 示例:GP數據庫異常處理(個人經驗)
下面是我在以前單位總結的,針對GP的異常處理流程。圖中的【】部分對應具體的處理步驟(對應腳本或操做文檔)。
從上述兩個示例能夠看出,這是一種"統籌式"的工做方式,而非"應急式"的。它強調的是在出現故障後,按照規劃好的原則、步驟進行分析排查,找出核心問題;而後針對既有問題,再按照已有的相關預案進行處理。同時在處理過程當中,注意規避風險及溝通協調,以期達到故障的快速解決。 顯然這種方式,表明着一種對工做的前瞻力,防患於未然;避免了那種忙於救火,使工做永遠處於被動之中。上述其實就是一種"結構化思惟"的體現。
結構化思惟:是指一我的在面對工做任務或者難題時能從多個側面進行思考,深入分析致使問題出現的緣由,系統制定行動方案,並採起恰當的手段使工做得以高效率開展,取得高績效。當你這樣作事的時候,你就擁有告終構化思惟,這將對你的職場晉升起到巨大的幫助做用。思惟決定發展,思惟層面不一樣致使結果不一樣。簡言之,結構化思惟指從總體思考到局部,是一種層級分明的思考模式。就是借用一些思惟框架來輔助思考,將碎片化的信息進行系統化的思考和處理,從而擴大思惟的層次,更全面地思考。
如何進行結構化思考呢,也是有方法論的,總的來講是有兩個步驟,首先是「創建中心」,而後再進行「分解」。
1)創建中心
創建中心也就是要定義清楚要解決的問題,要明確目標,也是一種以終爲始的思考方式。也就是說,首先要搞清楚why,而後再進行how。創建中心有兩種方式:自上而下、自下而上。後面咱們會詳細說明。
創建中心一般不會是一次成型的,隨着對問題理解的變化,對中心的抽象也會進行相應的調整。不一樣的抽象層次其面對的問題寬度是不同的。具體要用哪一個層次的抽象做爲「中心」,要視具體狀況而定。抽象層次越高,要解決的問題域就越寬,外延越大。好比面對「系統 bug 多」的問題,向上抽象是「提高代碼質量」,向下抽象是「增強測試」,均可以做爲中心,選擇哪一個爲中心取決於你當前要解決的問題是什麼。
2)結構化分解
使用結構化的思惟對問題進行分解。分解策略就是常見的四種邏輯順序,即演繹順序、時間順序、空間順序和程度順序。
3)邏輯順序
下面配圖爲XMind工具的對應圖例。
「大前提、小前提、結論」的演繹推理方式就是演繹順序。好比,經典三段論:全部人都要死,蘇格拉底是人,蘇格拉底要死。
「第1、第2、第三」,「首先、而後、再者」等,不少的時間順序同時也是因果順序。
「前端、後端、數據」,「波士頓、紐約、華盛頓」,化整爲零(將總體分解爲部分)等都是空間順序。在作空間分解的時候,要注意知足 MECE(Mutually Exclusive Collectively Exhaustive,相互獨立,徹底窮盡)原則。
好比「最重要、次重要、不重要」等。
自上而下的思考,適用於問題比較明確的狀況,咱們只須要找到問題的核心要素便可,而後進行展開便可。這就是一個很是典型的總分結構化思惟的思考方式。先總結,後發散。用這種方式思考,有助於造成、整理和構造思惟導圖,從而促進大腦天然有序地思考,從而讓你更全面地去分析一個問題。下面介紹幾種常見的自上而下的思考模型:
1)STAR法則
2)SWOT 分析方法
3)問題解決
分析問題>找到緣由>設置目標>提出解決方案>實施
對於問題不夠明確的狀況,須要對多種雜亂的內容,進行分類、剪枝、概括彙總成一箇中心。根據《金字塔原理》「任何事情均可以概括出中心論點,中心論點可由三至七個論據支撐,每一個一級論點能夠衍生出其餘的分論點。」如此發散開來,就能夠造成如下的金字塔結構思考方式。
可是在尚未掌握這種結構化思惟方式時,直接用這種思考方式是有必定難度的。這時候咱們就能夠採用自下而上的思考方式去找結構。
總結下就是:先發散,後總結。用這種方式思考,不只更容易找到邏輯結構,也更容易培養你的結構化思惟。舉個例子,當咱們面臨職業發展選擇時,如何總結提煉出本身的決策。
擴展性思惟的核心目標是提高思惟的廣度,能夠有三種擴展方向:
這種思惟方式的特徵是觸類旁通,舉一反三,至關於產生批處理的效果,能夠大大提高解決問題的效率,避免重複處理。
拓展思惟常見的手段是:是否可以換更多的理解方式,或者更多的解法。
這種思惟方式是要突破現有問題的表面化解決,而是須要深挖緣由,探究根本問題。只有這樣才能從根本上解決問題。
思惟方式有不少種,你能夠在實際工做中,嘗試使用上面的方法。堅持一段時間後,你會發現想問題時更有邏輯性,說話也更有條理更有說服力。不只如此,你還能夠用這種結構化的思惟,去搭建和構造本身的思惟體系。
做者:韓鋒
首發於做者我的公號《韓鋒頻道》。
來源:宜信技術學院