最近阿里雲數據庫SQL Server在控制檯推出了CloudDBA服務,重點解決數據庫性能優化領域問題,幫助客戶更好的使用好RDS數據庫,這是繼MySQL以後第二個關係型數據庫提供相似的服務。數據庫
數據庫可認爲是系統運行的關鍵,由於它存儲數據,確保事務一致性,是企業的核心資產。通常大型企業都有專職的數據庫管理員(DBA)來負責數據庫的平常運維管理,這些管理工做的好壞其實很是依賴於DBA的經驗。一個好的DBA,至少要負責以下幾個方面的工做:安全
在雲時代,阿里雲提供的關係型數據庫服務(RDS)解放了大量繁重的DBA平常工做,包括基礎運維管理的雜事、穩定性管理、安全管理等多個方面都有涉及,同時雲上數據庫數據管理工具DMS提供了可視化的數據管理界面,方便DBA平常數據管理,大大提高了性能。可是雲數據和傳統自建機房的自建數據庫是同樣的,它們一直都是在運行的,它們在運行過程當中會遇到不少問題的,我暫且統稱爲「運行態管理工做」,主要包含的就是性能優化相關的管理工做,而也是基於此考慮在2017年阿里雲數據庫推出了CloudDBA服務,首先服務於MySQL引擎。一年之後,SQL Server 版 CloudDBA正式發佈,標誌着阿里雲數據庫已經開始多引擎內置「運行態管理」功能,重點是性能優化、固然也會涉及到監控管理、安全管理等和運行有關的部分。性能優化
爲了表述方便,我將以SQL Server CloudDBA做爲藍原本闡述阿里雲數據庫CloudDBA產品思路和它集中要解決的問題是什麼。
CloudDBA設計之初就是但願可以幫助客戶更好的用好雲數據庫,由於阿里雲有數十萬數據庫實例,幾乎遇到全部的客戶使用場景,大量的案例沉澱,以及阿里雲數據庫專家積年累月的大量經驗,咱們但願將這些內容可以經過系統的方式智能的賦能給客戶,所以CloudDBA首先是智能化的,或者流行的說法是AI的。其次,咱們但願可以站在用戶面來看待解決問題的方式,也就是以此從看問題、解決問題、智能修復問題三個角度來幫助客戶。看問題的目標就是要將數據庫的相關信息所有展示給用戶,而且要努力作到一眼就能發現問題;解決問題的作法是將阿里雲數據庫專家處理這類問題的方法建議,造成腳本提供給用戶,用戶根據建議腳本去數據庫執行就能解決問題;至於智能修復問題,是CloudDBA的終極服務狀態,系統會智能識別問題點,而後自動啓動內部免疫系統直接去修復此類問題,舉個例子針對異常高峯和客戶的設置,直接在代理層控制異常SQL的流量來自動保護數據庫。所以CloudDBA是個體系化的系統,它不只僅是數據庫裏面hack一個小組件,下圖就是CloudDBA的基礎組件描述圖。運維
CloudDBA底層依賴於阿里雲採集的大量數據庫運行態數據,涵蓋數據庫引擎的運行數據,業務SQL語句,OS運行數據,主機數據和從應用到數據庫的全鏈路數據,而後整合數據,以不一樣的引擎爲業務場景服務。特別要介紹的就是規則引擎,這裏面沉澱了阿里雲數十萬的運行案例,它是不斷完善和進化,數據會不停的補充進去。另外,智能化的自治系統是CloudDBA對外服務的終極狀態,它會在背後默默爲客戶修復數據庫的問題,甚至在問題未發生時候就完成修復。函數
具體解決哪些實際的問題?若是是一位資深DBA可能會依據本身的經驗列出一二三,一個新DBA的話可能就沒法準確回答了。而咱們作產品優先去解決客戶哪些問題,是依據於多年數據而來的,在咱們對外服務中,因爲雲數據庫已經很好的解決了數據庫基礎運維工做,數據庫運行中CPU使用率太高、IOPS太高、查詢語句性能底下(返回很慢)、應用超時卡頓、空間異常等佔雲數據庫運行問題95%。SQL Server CloudDBA本版本優先解決此類問題,你能夠很輕鬆的:工具
深刻解讀下CloudDBA的輸出展現,從客戶資源使用視角展現優化項(如空間管理、SQL語句),每一個優化項頁面,頭部是概覽信息方便用戶急速判斷是否有問題是否須要優化、中間是形象化的圖信息從比較宏觀的角度展現本優化項的各方面信息,最後一部分則包含一個更細粒度的表格,具體的詳情都在表格中列出來,如空間管理中列出具體數據的空間使用狀況,用戶點擊進去還能看到具體數據文件的空間使用狀況,並且針對每項目都提供對應的解決方案,如缺失索引中直接給出要建立索引的SQL語句,用戶只須要在維護時間段執行對應的語句就能夠完成優化。將來會引入命令執行系統,用戶只要贊成執行,後臺就會自動按指令運行,大大簡化操做流程。
另外,在SQL Server CloudDBA中引入了一個貼心功能,保存成pdf,能夠迅速將本優化項目頁保存成一份pdf文件,方便傳閱分享。性能
SQL Server CloudDBA以用戶視角,提供專家級建議方案,以幫助用戶最優的使用好雲數據,這是產品的源動力。優化