阿里巴巴運維部DBA張瑞:Oracle與MySQL搭檔滿足業(yè)務(wù)需求
張瑞2005年加入阿里巴巴運維部,負(fù)責(zé)數(shù)據(jù)庫管理與運維,架構(gòu)改進(jìn)與性能優(yōu)化,經(jīng)歷了阿里巴巴數(shù)據(jù)庫技術(shù)的變革歷程,主導(dǎo)了ORACLE向MySQL的轉(zhuǎn)型。目前專注于數(shù)據(jù)庫高可用,分布式架構(gòu)等領(lǐng)域的研究與應(yīng)用。
張瑞談到,阿里巴巴過去一直采用的是Oracle數(shù)據(jù)庫,并利用小型機(jī)和高端存儲設(shè)備提供高性能的數(shù)據(jù)處理和存儲服務(wù)。隨著互聯(lián)網(wǎng)業(yè)務(wù)的不斷發(fā)展,數(shù)據(jù)量和業(yè)務(wù)量呈爆發(fā)性增長,傳統(tǒng)的集中式Oracle數(shù)據(jù)庫架構(gòu)在擴(kuò)展性方面遭遇瓶頸。阿里巴巴采用數(shù)據(jù)切分(sharding)的策略,將部分海量數(shù)據(jù)應(yīng)用從集中式Oracle切換到分布式MySQL集群,從縱向擴(kuò)展到水平擴(kuò)展,解決了數(shù)據(jù)庫擴(kuò)展性的問題,并用PC服務(wù)器替換了小型機(jī)。
數(shù)據(jù)庫應(yīng)用的***瓶頸是磁盤IO,而新的SSD存儲技術(shù),可以提供非常高的IO能力。阿里巴巴通過將SSD應(yīng)用到數(shù)據(jù)庫上,利用flashcache等技術(shù),大幅度提升了PC服務(wù)器的處理能力,取代了高端的存儲設(shè)備,減小了數(shù)據(jù)庫集群的規(guī)模,并降低了成本。
說起平時工作中的經(jīng)驗,張瑞介紹說,在日常工作中,碰到的***問題是數(shù)據(jù)遷移,尤其是不同類型的數(shù)據(jù)庫之間需要做數(shù)據(jù)同步,比如Oracle,MySQL,Greenplum等等,這些數(shù)據(jù)同步都很難找到現(xiàn)成的工具去完成,必須自己想辦法。數(shù)據(jù)遷移不僅要滿足一定的實時性要求,而且要對業(yè)務(wù)的影響最小,我們一般會采用全量與增量相結(jié)合的方式,并通過解析數(shù)據(jù)庫日志來實現(xiàn)增量數(shù)據(jù)同步,各種數(shù)據(jù)庫之間的同步采用統(tǒng)一的方案。
“每種數(shù)據(jù)庫都有其自身特點,正確使用才能發(fā)揮出***的性能。我們主要使用Oracle和MySQL。ORACLE數(shù)據(jù)庫功能龐大,可靠性高,可以充分發(fā)揮出大型硬件的性能。MySQL作為使用最廣泛的開源數(shù)據(jù)庫,OLTP應(yīng)用性能高,復(fù)制方案靈活。ORACLE與MySQL各有優(yōu)缺點,我們采用集中式ORACLE與分布式MySQL相結(jié)合的方式,不僅僅要考慮功能和擴(kuò)展性,還要考慮開發(fā)和管理的成本。”張瑞介紹說。
在技術(shù)選擇方面,張瑞表示,沒有***的方案,只有最適合的方案。所以,阿里巴巴在選擇數(shù)據(jù)庫產(chǎn)品時,主要是看功能是否滿足業(yè)務(wù)需求;二是成本問題,如ORACLE license費用;第三考慮人員的管理水平,不要盲目引進(jìn)新的技術(shù),帶來額外的風(fēng)險。
***,張瑞也談到了自己對數(shù)據(jù)庫未來發(fā)展的看法。他認(rèn)為未來數(shù)據(jù)庫在三個技術(shù)方向值得關(guān)注:一是分布式數(shù)據(jù)庫;二是數(shù)據(jù)庫軟硬件一體機(jī);三是SSD存儲。還有另外一個非常重要的發(fā)展方向是NoSQL,現(xiàn)在NoSQL產(chǎn)品眾多,甚至有很多說法NoSQL會取代關(guān)系型數(shù)據(jù)庫,我認(rèn)為未來數(shù)據(jù)庫和NoSQL產(chǎn)品一定會長期共存,NoSQL更多是針對某個特定場景進(jìn)行優(yōu)化的解決方案,而數(shù)據(jù)庫是一種通用的產(chǎn)品,兩者并不矛盾,而是相互補(bǔ)充。傳統(tǒng)行業(yè)肯定更適合使用數(shù)據(jù)庫,而互聯(lián)網(wǎng)行業(yè)則會呈現(xiàn)百花齊放的景象。
【編輯推薦】