導(dǎo)語|雖然數(shù)據(jù)庫上云解決了傳統(tǒng)數(shù)據(jù)庫很多問題,但如何讓云數(shù)據(jù)庫發(fā)揮最優(yōu)的效能,依然充滿極大挑戰(zhàn)。為解決這一難題,高速發(fā)展的云數(shù)據(jù)庫正在走向“自治”。本文是對騰訊云數(shù)據(jù)庫高級產(chǎn)品經(jīng)理劉迪在云+社區(qū)沙龍online的分享整理,為大家?guī)眚v訊云在數(shù)據(jù)庫自治服務(wù)領(lǐng)域的探索和實踐,希望與大家一同交流。
一、數(shù)據(jù)庫自治的演進
上圖所示是一張關(guān)于數(shù)據(jù)庫自治的宏觀視圖。
業(yè)內(nèi)普遍定義的石器時代大概是在十幾、二十年前,剛剛進入數(shù)據(jù)庫發(fā)展的快速軌道,當時的技術(shù)方案和對于數(shù)據(jù)庫的認知都處于一個初級的階段。
經(jīng)歷了后續(xù)的工具時代、專家時代,現(xiàn)在數(shù)據(jù)庫自治已經(jīng)到達了智能時代。在智能時代中,我們享受到了數(shù)據(jù)庫自治在數(shù)據(jù)庫性能優(yōu)化、管理、服務(wù)等紅利。
很多人都有疑惑,這條時代發(fā)展的時間線到底是怎么演進的?其實這個問題不難理解,大家在日常工作中也能體會到,時代的更替、技術(shù)的誕生,往往跟業(yè)務(wù)的需求有關(guān),也跟現(xiàn)有的技術(shù)能力有關(guān)。
無論是業(yè)務(wù)驅(qū)動還是技術(shù)驅(qū)動,最終的結(jié)果就是使得數(shù)據(jù)庫自治從石器時代到工具時代、專家時代、智能時代,這樣一個井然有序的發(fā)展過程。
我們所謂的石器時代、工具時代、專家時代、智能時代其實不僅僅是指代時間的迭代,更多的是指技術(shù)的發(fā)展和趨勢的迭代。所以有些公司現(xiàn)在可能依然處于石器時代,有些公司可能很早就進入了專家或者智能時代。
1.石器時代
首先我們來看石器時代解決了什么樣的問題?石器時代數(shù)據(jù)庫運維和服務(wù)領(lǐng)域關(guān)注的問題是什么?
最明顯的一個特征,石器時代關(guān)注的問題就是“沒有問題”,也就是保證業(yè)務(wù)不出問題,沒有問題就是最大的成功。
因為在石器時代,運維依靠的主要是純手工的人力,靠數(shù)據(jù)庫運維工程師沒日沒夜進行手工的運維操作。
在這個階段,往往是有經(jīng)驗的DBA帶一些剛剛?cè)腴T或者剛剛畢業(yè)的同學(xué),傳幫接代的進行知識傳遞。這樣造成的結(jié)果就是整個團隊的資質(zhì)水平參差不齊,但整個團隊還是可以承擔起公司業(yè)務(wù)線數(shù)據(jù)庫運維的重任。
石器時代最大的目標、最大的收益,就是知識的積累,但積累的大部分是碎片化、零星化的知識。
2.工具時代
在工具時代,關(guān)注的焦點從“不出問題”,轉(zhuǎn)變?yōu)椤霸诓怀鰡栴}的前提下如何提高效率”。工具時代不再是原來的手工錄入代碼、手工處理問題,而是開始把經(jīng)驗、知識沉淀成腳本或者工具。
目前大部分公司的數(shù)據(jù)庫運維有可能是專人專崗,也可能是由研發(fā)同學(xué)兼職,他們會用自己寫的工具或者網(wǎng)上開源的工具進行運維工作。這個工具可能是一個很簡單的腳本,也可能是非常復(fù)雜的命令集合,這是數(shù)據(jù)庫運維中一個必不可少的過程。
在這個時代中,大家關(guān)注的焦點是怎樣用工具去很好的滿足業(yè)務(wù)的需求。
除了人和工具之外,能幫助大家提高效率的還有流程管理。在工具時代,看重的一點是流程管理如何把人和工具結(jié)合在一起,提高數(shù)據(jù)庫運維的效率。
在這個階段會出現(xiàn)大量審核的系統(tǒng)、流程和服務(wù),每個審核都有著非常規(guī)范的流程來進行數(shù)據(jù)庫的運維。
3.專家時代
當工具時代的積累達到了一定的程度,就到達了專家時代。
在這個時期,大家發(fā)現(xiàn)之前的腳本雖然很多但很雜亂,用了各種各樣的編程語言、運行在各種不同的環(huán)境中,沒有統(tǒng)一的管理平臺,也沒有統(tǒng)一的歸類整理。數(shù)據(jù)庫運維的水平往往取決于寫這個腳本的運維工程師的個人能力,很難很好繼承下去。
所以專家時代更多的是想把腳本標準化,用服務(wù)平臺代替雜亂無章的腳本,從而將腳本規(guī)范化、標準化,變成一個可以實現(xiàn)自動化運維的平臺。
通過這個平臺,無論是有資歷的工程師還是剛剛?cè)腴T的研發(fā)同學(xué),都可以井然有序的根據(jù)平臺化的服務(wù)進行數(shù)據(jù)庫管理。
把專家的經(jīng)驗轉(zhuǎn)變?yōu)榭蓮?fù)制的能力工具,是專家時代運維最顯著的特點。
4.云數(shù)據(jù)庫時代
隨著近幾年云數(shù)據(jù)庫時代的到來,很多企業(yè)從自建DB遷移到了云上,也開始認知到云帶給大家的好處。
數(shù)據(jù)庫從本地部署到云上,可以自建云服務(wù)器,也可以直接使用云上提供的PaaS服務(wù)。這部分無論是關(guān)系型數(shù)據(jù)庫還是非關(guān)系型數(shù)據(jù)庫或者是NewSQL,大家都開始逐漸享受到云數(shù)據(jù)庫時代的紅利。
在數(shù)據(jù)庫上云后,很多人會問云廠商提供的服務(wù)是不是可以保證數(shù)據(jù)庫的運維沒有任何的問題了?就不再需要去思考、不需要擁有之前一代代繼承下來的經(jīng)驗?
其實并不是這樣。數(shù)據(jù)庫上云解決的只是基礎(chǔ)的管控服務(wù),比如備份、監(jiān)控、故障切換等等,云上提供的是相應(yīng)的PaaS能力、高可用能力和數(shù)據(jù)可靠性的能力。
但其實云服務(wù)的到來,對數(shù)據(jù)庫的運維服務(wù)反而提出了更多的挑戰(zhàn)。這里我們可以舉幾個例子。
首先是資源的評估,這是在上云、多云的使用中會經(jīng)常遇到的問題。本地使用的是4核16G的物理機,那么在云上要購買哪種型號的服務(wù)器?購買哪種規(guī)格的PaaS數(shù)據(jù)庫服務(wù)?絕大多數(shù)沒有經(jīng)歷過云遷移的同學(xué)在這個階段會認為最好的方法是平移,這樣一定不會出現(xiàn)問題。其實不然,在某些環(huán)節(jié)出現(xiàn)的問題有可能會導(dǎo)致業(yè)務(wù)性能出現(xiàn)故障。
其次在上云之后,大家會認為云的彈性伸縮促使了業(yè)務(wù)的快速發(fā)展。近兩年來很多的電商業(yè)務(wù)量、訪問流量都呈幾何倍數(shù)增長,各種各樣的大促節(jié)日讓業(yè)務(wù)部門、數(shù)據(jù)庫運維部門面臨更重的數(shù)據(jù)庫保障任務(wù)。這時要如何保障資源評估的準確率,以及快速處理突發(fā)事件就成了要解決的問題。
同樣對于云上的數(shù)據(jù)庫,最大的變化就是上云之后變成了黑盒。這種黑盒現(xiàn)象使得在故障診斷、分析和恢復(fù)數(shù)據(jù)庫問題時不能快速的定位問題、發(fā)現(xiàn)問題、解決問題。
所以云上數(shù)據(jù)庫時代到來以后,對數(shù)據(jù)庫運維同學(xué)其實是提出了更高的要求。對于非專業(yè)的運維同學(xué),如何通過云上成千上百的異常指標來發(fā)現(xiàn)問題、找出規(guī)律,是面臨的一個大問題。
最后,云時代還對性能提出了新的考驗。如何利用經(jīng)驗幫助提高數(shù)據(jù)庫的性能,并且持續(xù)不斷的進行優(yōu)化?隨著數(shù)據(jù)量的積累和業(yè)務(wù)的增長,甚至一些數(shù)據(jù)的變化導(dǎo)致的數(shù)據(jù)分布不均衡,都會導(dǎo)致數(shù)據(jù)庫出現(xiàn)問題,所以數(shù)據(jù)庫性能的優(yōu)化在云上有著更大的挑戰(zhàn)。
5.智能時代
正因為上面講到的原因,促使運維從原來平臺化運維,不得不推進進入智能時代的發(fā)展。智能時代大家不再是人和工具的結(jié)合,而是人、云資源、以及自治服務(wù)的結(jié)合,從而提供更好的數(shù)據(jù)庫運維服務(wù)能力。
這個階段的目標是數(shù)據(jù)庫能力和專家經(jīng)驗的共享,能夠把之前已經(jīng)積累好、沉淀好的數(shù)據(jù)庫處理經(jīng)驗自動化,能夠讓數(shù)據(jù)庫自己處理一些簡單的問題,不需要人工干預(yù)。面對復(fù)雜問題的時候能夠提供非常充足的建議,通過專家的干預(yù)進行最后的處理。
在云時代也要通過自治服務(wù)幫助大家獲取數(shù)據(jù)庫目前存在的看不見、摸不到的隱患。比如查詢操作,當一個表只有十行數(shù)據(jù)的時候,無論怎樣查詢返回速度都會非???、CPU消耗也會非常小,但一旦并發(fā)上來,比如數(shù)據(jù)量增長到十萬、百萬量級的時候,原來看起來非??斓腟QL就都變慢了。
在故障沒有發(fā)生前,如何通過自治服務(wù)幫助用戶在隱患階段就能解決數(shù)據(jù)庫的潛在問題,這就是數(shù)據(jù)庫智能時代主要關(guān)注的焦點。
類比自動駕駛的等級,我們把數(shù)據(jù)庫自治運維也切分成Level 0~Level 4這幾個階段。
最開始所有操作都需要人工部署、人工干預(yù),而后期人只是作為輔助,一些簡單的工作、沒有成長、重復(fù)的勞動都可以交給數(shù)據(jù)庫自治服務(wù)統(tǒng)一完成。
經(jīng)常有人會問,數(shù)據(jù)庫自治服務(wù)是否會取代人工?取代數(shù)據(jù)庫運維?取代DBA?我可以很明確的告訴大家,數(shù)據(jù)庫自治目的是為了提高處理問題的效率、提高業(yè)務(wù)的穩(wěn)定性、降低業(yè)務(wù)的故障導(dǎo)致的損失,而并不是為了取代DBA。
DBA在數(shù)據(jù)庫各個發(fā)展時代的核心價值,從會寫自動命令到會編寫腳本,處理線上的故障、會排查日志,再到會做一些監(jiān)控和管控平臺。到了數(shù)據(jù)庫自治時代,數(shù)據(jù)庫運維核心價值應(yīng)該是能夠貼近業(yè)務(wù),在業(yè)務(wù)層面發(fā)揮更多的價值。能夠通過積累、通過對業(yè)務(wù)的理解和數(shù)據(jù)庫的理解,幫助業(yè)務(wù)在架構(gòu)設(shè)計、附表設(shè)計、整體的業(yè)務(wù)架構(gòu)上面做更多的工作。
所以數(shù)據(jù)庫自治服務(wù)是放大了數(shù)據(jù)庫運維的核心價值,而不是取代了數(shù)據(jù)庫運維。
二、騰訊在數(shù)據(jù)庫自治中的探索與實踐
騰訊在數(shù)據(jù)庫自治中的探索跟整個行業(yè)的歷史發(fā)展一樣,同樣是從簡單的運維系統(tǒng)雛形,到后面隨著業(yè)務(wù)體量越來越大,包括微信、騰訊視頻、紅包業(yè)務(wù)、騰訊游戲產(chǎn)業(yè)、騰訊體育這些大業(yè)務(wù)不斷的擴張,使得人工操作遇到了瓶頸,成本也到了需要轉(zhuǎn)型的階段,因此數(shù)據(jù)庫自治平臺從內(nèi)部開始逐漸孵化。
因為騰訊自身業(yè)務(wù)的行業(yè)屬性非常多,有內(nèi)容線的行業(yè)屬性,有社交類的、有文體類的等等,根據(jù)不同的使用場景不斷打磨后,去年開始對外發(fā)布——數(shù)據(jù)庫智能管家DBbrain,這是騰訊對外發(fā)布的一款強大的數(shù)據(jù)庫自治產(chǎn)品。
1.DBbrain產(chǎn)品能力解讀
DBbrain服務(wù)在云上是免費的,大家可以進行免費的試用。DBbrain提供的自治服務(wù)涵蓋三個方面:
性能優(yōu)化:利用機器學(xué)習(xí)、大數(shù)據(jù)手段快速復(fù)制資深數(shù)據(jù)庫管理員的成熟經(jīng)驗,將大量數(shù)據(jù)庫問題的診斷優(yōu)化工作自動化,服務(wù)于云上和云下企業(yè)。
安全防護:提供從用戶行為安全、SQL安全到數(shù)據(jù)存儲加密安全等多項數(shù)據(jù)安全服務(wù),公安部認證的等保合規(guī)性安全產(chǎn)品。
數(shù)據(jù)庫管理:提供免安裝、免運維、即開即用、多種數(shù)據(jù)庫類型與多種環(huán)境統(tǒng)一的web數(shù)據(jù)庫管理終端。
數(shù)據(jù)庫智能管家DBbrain與傳統(tǒng)數(shù)據(jù)庫管理工具的區(qū)別在于,它不僅僅作為輔助運維工具供DBA使用,而是面向所有用戶,包括運維團隊、開發(fā)團隊、運營團隊。其核心思想是通過智能運維平臺為應(yīng)用部門提供標準化和自動化的數(shù)據(jù)庫運維服務(wù)。
2.DBbrain系統(tǒng)架構(gòu)解讀
數(shù)據(jù)庫智能管家DBbrain提供的自治服務(wù)是跨數(shù)據(jù)庫引擎的,是通過多數(shù)據(jù)庫引擎插件式方式提供的,不僅支持MySQL,也支持NoSQL、Redis等。
之前大家在網(wǎng)上聽過Oracle有自治數(shù)據(jù)庫、微軟也有自治服務(wù),但他們的服務(wù)是在特有引擎上進行數(shù)據(jù)庫自治,并不是多引擎的的服務(wù)平臺。
我們認為數(shù)據(jù)庫自治既然是為了幫助數(shù)據(jù)庫運維同學(xué)減輕工作的壓力、提高運維的效率,應(yīng)該是具備涵蓋數(shù)據(jù)庫運維所涉及的盡可能多的數(shù)據(jù)庫引擎,因為一個業(yè)務(wù)可能不止會用到單一的數(shù)據(jù)庫,比如常見的MySQL+Redis組合等。
在數(shù)據(jù)的采集層,以MySQL為例,我們會根據(jù)不同數(shù)據(jù)采集監(jiān)控指標、比如主機監(jiān)控指標、網(wǎng)絡(luò)監(jiān)控指標、數(shù)據(jù)庫監(jiān)控指標,通過秒級監(jiān)控的指標以及采集的日志信息,幫助用戶發(fā)現(xiàn)更廣的問題面,不僅僅是數(shù)據(jù)庫層面的故障、主機層面和管控任務(wù)的故障都可以有豐富的源數(shù)據(jù)的記錄。
在數(shù)據(jù)的計算和加工層的模塊,模塊通過流式計算平臺提取出特征數(shù)據(jù)。這個地方并不需要人工進行分類,而是通過特征提取和加工來識別出異常信息、異常的數(shù)據(jù),再進行異常指標和異常趨勢的預(yù)測。
這個模型我們自身已經(jīng)訓(xùn)練出了涵蓋比較多指標和比較多情況的通用引擎,另一方面,也通過了現(xiàn)網(wǎng)用戶對數(shù)據(jù)庫使用情況和對于問題的反饋來進行監(jiān)督式學(xué)習(xí),不斷增強模型訓(xùn)練,做到模型對業(yè)務(wù)是千人千面,而不是一套通用模型面對所有的數(shù)據(jù)庫業(yè)務(wù)。
在實時診斷模塊中,通過計算模塊給出的結(jié)果、識別出的異常信息,以及內(nèi)置的專家智能服務(wù)來為大家提供診斷優(yōu)化的建議,同時會調(diào)用一些運維工具類處理的模塊,比如慢日志分析模塊、延遲主備切換分析等等,以工具類的模塊進行輔助診斷,給到用戶非常精準的數(shù)據(jù)庫問題的診斷結(jié)果和對應(yīng)分析以及優(yōu)化定義。
在功能和輸出交互層面也提供了多終端的訪問,不僅僅是PC端的訪問,也提供了小程序、移動端、公眾號、訂閱號一體化的輸出,幫助用戶有各種各樣的體驗,在任何地方都可以享受數(shù)據(jù)庫自治服務(wù)帶來的紅利和便利。
3.用戶級監(jiān)控告警全鏈路
接下來和大家分享這幾年我們做了哪些工作,有了哪些沉淀積累。
數(shù)據(jù)庫自治服務(wù)首先關(guān)注的是故障,故障具體關(guān)注的是告警和監(jiān)控,DBbrain提供了宏觀用戶級別的監(jiān)控和告警,讓用戶第一時間內(nèi)能夠發(fā)現(xiàn)故障、發(fā)現(xiàn)異常,可以了解整個自己負責的所有數(shù)據(jù)庫的情況。
這部分采用的是二八原則,產(chǎn)品基本上為80%以上的”小白”設(shè)計,涵蓋80%常見的數(shù)據(jù)庫異常問題和監(jiān)控指標,所以門檻非常低。
監(jiān)控頁面給用戶呈現(xiàn)出來的易讀性非常高,不需要從幾百個監(jiān)控指標中找出哪個有問題,我們會幫助用戶篩選、聚合出相同問題觸發(fā)的監(jiān)控指標。
最后是過程+結(jié)果的導(dǎo)向,DBbrain的全景視圖是聯(lián)動的,所有都是結(jié)果導(dǎo)向,不僅僅讓用戶看得到實際上出現(xiàn)什么問題,也可以在監(jiān)控告警層面給大家展示故障發(fā)生過程中的變化,性能變更趨勢、其他指標變化趨勢等等。不僅是在結(jié)果側(cè)方面給出反饋,在過程方面也會給用戶清晰的呈現(xiàn)。
4.7*24小時異常診斷
7x24小時異常診斷,就相當于不間斷的DBA值班一樣,只不過是通過數(shù)據(jù)庫自治服務(wù)來提供。
在之前的專家時代、工具時代,沒有辦法做到7x24小時的異常診斷,主要有三個原因:
信息分析難
信息獲取難
性能優(yōu)化難
數(shù)據(jù)庫自治服務(wù)可以幫助大家克服掉這三座大山,提供自治的閉環(huán)服務(wù),幫助大家識別各種各樣的數(shù)據(jù)庫問題。這里我們可以舉幾個例子:
比如在線教育行業(yè)由于疫情的原因,在晚上八點到十點會是一個業(yè)務(wù)高峰;而交易類、金融類的業(yè)務(wù)在早上和下午會是高峰,在某一個點可能會出現(xiàn)峰值,所以具備一個周期性的變化。
變更是指原來的業(yè)務(wù)變化是有規(guī)律的,但是突然有一天出現(xiàn)業(yè)務(wù)的變更,這很可能是業(yè)務(wù)進行了功能上的發(fā)布或者調(diào)整。
通過這些特征提取以及采集到的多維度秒級監(jiān)控進行相互的配合,能夠幫助識別出每一類業(yè)務(wù)自有、特有的規(guī)律,使得在做歸因分析和自我優(yōu)化過程中,可以屏蔽掉由于自身業(yè)務(wù)特性帶來的并非是故障的高峰點,幫助用戶識別“偽高峰”。
5.異??蚣茉\斷
數(shù)據(jù)庫自治服務(wù)診斷的框架分三部分——假說生成、證據(jù)評分、決策計算。
在假說生成時,我們會把各種關(guān)系模型進行1-N個關(guān)聯(lián),取到非常多的相關(guān)指標和異常,通過決策候選集的篩選,利用證據(jù)模型通過證據(jù)鏈進行篩選。最后通過決策支持度向量,進入決策計算模塊。
決策計算模塊會進行判斷,決策是否為最優(yōu),如果不是最優(yōu)會重新進行證據(jù)評分。
6.SQL優(yōu)化
相信SQL優(yōu)化是絕大多數(shù)DBA或者研發(fā)同學(xué)都很感興趣的話題,也是大家用的最頻繁的功能之一。
DBbrain提供的SQL優(yōu)化,特點在于代價和成本。不僅提供索引的建議,還會提供語句的改寫和排序字段的選擇。
DBbrain在索引分析方面考慮的更為全面。比如在增加索引時,會考慮是否有冗余索引,是否有現(xiàn)成的索引可以使用或者修改。其次在索引更新后,還會評估對于用戶已有的SQL是否會有影響,從而使得數(shù)據(jù)庫性能下降等?
此外像大家比較關(guān)注的SQL模板聚合統(tǒng)計、耗時區(qū)間統(tǒng)計等多維度的信息統(tǒng)計,DBbrain也會提供相應(yīng)的能力。
7.基于cost的分析引擎
基于cost的分析引擎也是我們今年的重點之一。首先的出發(fā)點是增加用戶對于DBbrain提供的索引建議的可信度。
往往我們要判斷一個索引、一個優(yōu)化建議好不好,最簡單的方法是理論上一定是可行的,二是實踐,如果加上去真的變快了,我們就認為這個處理得好。如果加上去沒改變就不行。
但是通過基于cost的分析引擎,我們能夠在用戶沒有執(zhí)行優(yōu)化建議之前就把優(yōu)化的結(jié)果告訴大家,從而在優(yōu)化前就可以清楚的看到預(yù)期的優(yōu)化效果。
cost值不等同于耗時,減少的cost不能等比例的計算耗時。這里我們會考慮三個方面:
在Server層中主要的開銷是計算符合條件的行的代價
在engine層中主要的開銷是從磁盤讀數(shù)據(jù)的代價
在Jion計算時不僅要考慮condition,還要考慮condition上的filter
我們會將這些綜合到cost引擎中,幫助用戶更好的在優(yōu)化之前看到優(yōu)化的預(yù)期效果。
8.數(shù)據(jù)庫審計與分析
這個功能也是DBbrain提供的非常前沿的功能,也是非常實用的功能。
具體就是我們之前有些操作很可能是瞬間的操作,在回溯問題時發(fā)現(xiàn)不了;有些SQL由于記錄的原因記錄不全,導(dǎo)致分析問題時沒有參考。
通過SQL審計與分析服務(wù),可以幫助用戶記錄所有在數(shù)據(jù)庫層面執(zhí)行的SQL,不僅僅是變更的操作,查詢操作也可以被記錄下來??梢岳斫鉃轭愃朴谠膌og。首先對性能消耗做了嚴格的測試,每條SQL執(zhí)行完以后會進行審計規(guī)則的識別和過濾,將命中審計規(guī)則的SQL寫入到內(nèi)存中,批量的進行刷盤,它的性能整體損耗在做壓縮以后,得出數(shù)據(jù)是低于5%。
各個廠商都在做審計類的服務(wù),評測報告也是網(wǎng)上可以查詢到的,5%的消耗是業(yè)內(nèi)很領(lǐng)先的水平。
針對審計全量SQL能夠做的事非常多,能夠貢獻所有SQL任意時刻的快照以及執(zhí)行的趨勢。很多時候一條SQL可能就執(zhí)行十秒,但其中等了20秒,所以SQL執(zhí)行時間很短,但是這條SQL結(jié)束的時間跨度非常長。對于這種SQL如果沒有全量時間的快照就很難發(fā)現(xiàn)這樣的問題,這幫助我們在排除疑難雜癥的時候有更多的支持,能夠幫助我們把整個數(shù)據(jù)庫執(zhí)行軌跡更加精確的梳理出來。
9.數(shù)據(jù)庫健康評估策略解讀
除了精確到SQL層面的優(yōu)化,數(shù)據(jù)庫自治服務(wù)在宏觀上對整個數(shù)據(jù)庫也有一套健康評估策略,主要通過五個方面進行評估,如下圖所示:
首先是可用性,可用性是指服務(wù)正常還是不正常。業(yè)務(wù)最明顯的感知就是業(yè)務(wù)是不是掛了,是不是可以正常的使用。
第二是數(shù)據(jù)可靠性。什么情況下會影響數(shù)據(jù)可靠性?除了故障數(shù)據(jù)、丟數(shù)據(jù)、人為的操作導(dǎo)致數(shù)據(jù)的不一致以外,有時候正常的業(yè)務(wù)邏輯中也會出現(xiàn)數(shù)據(jù)可靠性的問題。比如數(shù)據(jù)延遲增加,一旦出現(xiàn)故障如果主庫的數(shù)據(jù)無法找回、起不來,備庫的數(shù)據(jù)就會出現(xiàn)數(shù)據(jù)丟失的情況,很可能是由于binlog還沒有傳輸過去、或者主庫事務(wù)沒有結(jié)束的情況。
性能是指是不是存在慢SQL、是不是存在并發(fā)數(shù)導(dǎo)致CPU資源消耗過于明顯,是不是使用率非常高、發(fā)揮功能不足或者是cache比較低等等導(dǎo)致的性能問題,也是數(shù)據(jù)庫健康評估策略非常關(guān)注的一點。
還有就是隱患、超大表或者是表數(shù)量的不合理,沒有及時進行分步、分表,或者是采用分布式底層存儲的架構(gòu),導(dǎo)致在做大量數(shù)據(jù)的排序查詢時性能會隨著數(shù)據(jù)量逐漸增大,聚合的消耗會越來越大,這也是隱患項。還有一個隱患是權(quán)限是否合理、是否有過多的授權(quán),這些都會涉及到數(shù)據(jù)庫的隱患,我們也會在健康評估策略中特別的強調(diào)出來。
變化我們在7x24小時的異常診斷中提到過,業(yè)務(wù)趨勢的變更、突增、變化,與之前業(yè)務(wù)消耗和業(yè)務(wù)資源使用情況不一致的情況,我們都會識別出來告訴用戶,幫助大家不僅能夠掌握整個業(yè)務(wù)的使用情況,也可以對業(yè)務(wù)資源消耗畫像有所了解。通過健康評估報告,更能夠知道各種業(yè)務(wù)是否合理。
10.時間序列模型Porphet在資源預(yù)測上的應(yīng)用
剛剛我們提到,我們結(jié)合了一些算法進行了一些預(yù)測,預(yù)測模型是采用前幾年Facebook開源的Porphet算法,應(yīng)用累加回歸的模型,通過時間、趨勢以及循環(huán)變更的規(guī)律來幫助業(yè)務(wù)預(yù)測資源的使用情況。
最簡單的是根據(jù)歷史使用趨勢預(yù)測磁盤使用量,能夠幫助用戶提早知道什么時候該擴容、什么時候縮容、什么時候需要購買更多的設(shè)備、什么時候需要清理數(shù)據(jù),同樣也可以幫助用戶預(yù)測CPU、內(nèi)存性能指標在后續(xù)趨勢中的變動,幫助用戶在大促前、一些活動之前、一些重要敏感操作之前,知道業(yè)務(wù)什么時候是低峰、什么時候需要拓展多少資源,這種預(yù)測模型對用戶和云廠商有非常大的價值。
對于云廠商而言,對于資源調(diào)度、資源的管理以及幫助用戶進行資源合理的分配,有非常大的價值。
對于客戶而言,云上的資源評估、資源的管理工作,借助預(yù)測模型可以預(yù)先啟動這些工作,不用每次都措手不及。想要擴容的時候馬上申請資源是來不及的,雖然云上是彈性的伸縮,但是特殊情況下,比如出現(xiàn)大促的時候,電商客戶都在這一天發(fā)起擴容,很可能就會出現(xiàn)資源洪峰,用戶可能不能夠按時拿到想要的資源。
11.自動性能優(yōu)化系統(tǒng)CDBTune
CDBTune是一個新的前沿技術(shù),去年我們在SIGMOD以論文的形式進行了發(fā)布。產(chǎn)品化的過程也在進行逐步的完善。
大家都知道數(shù)據(jù)庫參數(shù)很多,那么要如何調(diào)參?很多人表示網(wǎng)上有很多萬能模板,但到底適不適合你的業(yè)務(wù),其實是不知道的,可能無法發(fā)揮數(shù)據(jù)庫最大的性能。
如果對這些參數(shù)進行手動調(diào)參,有經(jīng)驗的DBA可能對其中的某些參數(shù)有自己的經(jīng)驗,但對于各種不同特征業(yè)務(wù)或者不斷變更的業(yè)務(wù),CDBTune就可以幫助很好的解決這個問題。
我們可以通過深度學(xué)習(xí)算法通過自調(diào)優(yōu)的方式,得到與自身業(yè)務(wù)相匹配的參數(shù)配置。調(diào)優(yōu)的時間也比其他的要快,調(diào)優(yōu)的結(jié)果經(jīng)過測試,已經(jīng)達到了很高的水平。
12.容易被忽略的數(shù)據(jù)庫安全防護
絕大多數(shù)的數(shù)據(jù)庫運維對于這部分的內(nèi)容要不然是接觸的很少,要不然就是會被忽略掉。大部分的數(shù)據(jù)庫運維往往認為只要保證業(yè)務(wù)不出性能問題、不出故障就可以,但很少會關(guān)注數(shù)據(jù)庫的安全防護。
數(shù)據(jù)庫自治服務(wù)作為一個全方位的服務(wù),必然要在大家忽略或者沒有關(guān)注到的地方提供相應(yīng)的價值,這樣才能為客戶更好的提供數(shù)據(jù)庫的穩(wěn)定性和安全性。
這里我們主要提供了三個功能:
合規(guī)審計:提供符合國家等保要求的安全審計,對企業(yè)網(wǎng)絡(luò)中的數(shù)據(jù)庫各類會話信息、訪問操作、SQL語句進行安全審計,可挖掘數(shù)據(jù)庫運行過程中各類潛在風險和隱患,為數(shù)據(jù)庫安全運行保駕護航。
安全治理:可對數(shù)據(jù)資產(chǎn)、數(shù)據(jù)內(nèi)容、訪問信息進行中心化管理。并依托先進的AI引擎與敏感數(shù)據(jù)發(fā)現(xiàn)算法,將針對企業(yè)核心數(shù)據(jù)的異常操作進行篩選告警,實現(xiàn)企業(yè)數(shù)據(jù)保護。
數(shù)據(jù)脫敏:以處理數(shù)據(jù)庫文件的方式,對數(shù)據(jù)庫中敏感數(shù)據(jù)進行在線屏蔽、變形、字符替換、隨機替換等脫敏操作,達到企業(yè)核心數(shù)據(jù)保密效果。