摘要:EOL,即生命周期結(jié)束(End of Life)。根據(jù)Oracle官方信息,到了2023年10月,MySQL 5.7將迎來其生命周期的終結(jié),也就是俗稱的“停服”。這意味著該版本將不再獲得更新或安全補(bǔ)丁,同時也意味著各個行業(yè)使用MySQL 5.7數(shù)據(jù)庫的業(yè)務(wù)系統(tǒng)將面臨多種潛在風(fēng)險(xiǎn)……
MySQL 5.7 停服的潛在風(fēng)險(xiǎn)
在DB-Engines流行度排名中,MySQL已連續(xù)數(shù)年位于流行度前兩位。在關(guān)系型數(shù)據(jù)庫中,MySQL也有著較高的市場份額。根據(jù)2022年Slintel網(wǎng)站的統(tǒng)計(jì)數(shù)據(jù),在全球關(guān)系型數(shù)據(jù)庫市場中,MySQL市場份額最高,達(dá)到43.04%,排名第二的Oracle僅為16.76%。MySQL市場份額幾乎占據(jù)關(guān)系型數(shù)據(jù)庫市場半壁江山,已經(jīng)成為事實(shí)上全球范圍內(nèi)影響最廣泛的開源數(shù)據(jù)庫。
而在中國,MySQL的應(yīng)用比例也相當(dāng)高。根據(jù)Shadowserver Foundation在2022年發(fā)布的MySQL掃描報(bào)告,全球目前共有360萬個MySQL實(shí)例,其中中國MySQL實(shí)例數(shù)占比為15.8%,僅次于美國的32.5%。
因此,MySQL 5.7的停服影響是巨大的,可能導(dǎo)致多種潛在風(fēng)險(xiǎn),這些風(fēng)險(xiǎn)包括但不限于以下幾個方面:
安全漏洞和漏洞未修復(fù):停服后,MySQL 5.7容易受到新的安全漏洞和攻擊的威脅,這可能導(dǎo)致未經(jīng)授權(quán)的訪問、數(shù)據(jù)泄露、數(shù)據(jù)破壞或拒絕服務(wù)攻擊等安全問題,對企業(yè)的數(shù)據(jù)安全構(gòu)成潛在威脅。
合規(guī)性問題:對于需要遵守特定行業(yè)法規(guī)或數(shù)據(jù)隱私法規(guī)的企業(yè),繼續(xù)運(yùn)行不再受支持的MySQL 5.7版本可能會引發(fā)合規(guī)性問題。未修復(fù)的漏洞和安全風(fēng)險(xiǎn)可能導(dǎo)致法律和監(jiān)管問題,對企業(yè)的聲譽(yù)構(gòu)成風(fēng)險(xiǎn),同時也可能面臨法律訴訟和知識產(chǎn)權(quán)風(fēng)險(xiǎn)。
性能和穩(wěn)定性問題:隨著硬件和操作系統(tǒng)的更新,MySQL 5.7可能會遇到性能和穩(wěn)定性問題。新硬件或操作系統(tǒng)的特性和優(yōu)化可能不再與MySQL 5.7兼容,從而導(dǎo)致業(yè)務(wù)系統(tǒng)整體性能下降或系統(tǒng)不穩(wěn)定,進(jìn)而影響業(yè)務(wù)連續(xù)性。
缺乏新功能和改進(jìn):停服后,MySQL 5.7將不再接收新功能和改進(jìn)。這意味著用戶將錯過在新版本中引入的性能優(yōu)化、新的SQL特性、可擴(kuò)展性改進(jìn)和其他增強(qiáng)功能,可能限制了業(yè)務(wù)創(chuàng)新和競爭力。
維護(hù)和支持問題:停服后,用戶將不再獲得來自MySQL官方的技術(shù)支持。這可能導(dǎo)致數(shù)據(jù)庫管理員在面臨問題時缺乏官方支持和解決方案,增加了故障排除和維護(hù)的難度,延長了系統(tǒng)恢復(fù)時間。
生態(tài)系統(tǒng)的逐漸衰退:隨著時間的推移,MySQL 5.7的生態(tài)系統(tǒng),包括第三方工具、庫和插件,可能會逐漸減少支持或停止更新,這將影響數(shù)據(jù)庫的可用性和生產(chǎn)力。
數(shù)據(jù)庫技能的短缺:隨著MySQL 5.7逐漸退出市場,數(shù)據(jù)庫管理員和開發(fā)人員對其進(jìn)行維護(hù)和開發(fā)的技能可能變得過時。這可能導(dǎo)致人員技能的不足和難以招聘的問題,增加了人力成本和培訓(xùn)需求。
鑒于以上主要風(fēng)險(xiǎn),企業(yè)需要采取措施來降低這些潛在風(fēng)險(xiǎn),以確保數(shù)據(jù)安全、合規(guī)性和業(yè)務(wù)的持續(xù)性。
遷移到國內(nèi)的MySQL開源分支
根據(jù)我的觀察,大多數(shù)MySQL用戶企業(yè)對MySQL 5.7的“停服”事件都已經(jīng)有所了解,并已經(jīng)制定了應(yīng)對策略。這些策略主要分為以下四種:
1、躺平,繼續(xù)使用MySQL5.7
2、遷移到受支持版本,比如MySQL8.0
3、遷移到國內(nèi)的開源數(shù)據(jù)庫
4、遷移到國產(chǎn)商業(yè)數(shù)據(jù)庫
其實(shí)還有第五種,即遷移到其他主流MySQL分支(如Percona、MariaDB),但這個選項(xiàng)在當(dāng)下國產(chǎn)替代的浪潮下,大多數(shù)企業(yè)中似乎已經(jīng)選擇忽略,因此在此不做詳細(xì)介紹。(另外,盡管數(shù)據(jù)庫產(chǎn)品本身沒有政治立場,但背后的公司可能有政治立場。Percona和MariaDB都公開表示支持烏克蘭,這與西方價(jià)值觀一致,但這里不深入討論政治議題。)
對于上述四種方案,保持現(xiàn)狀和升級到MySQL 8.0似乎不需要過多討論,因?yàn)樯壍組ySQL 8.0是相對較簡單的選擇,有很多教程可供參考。但即使升級到MySQL 8.0,也只是一時的解決方案,仍然無法避免未來的停服問題。
而遷移到國產(chǎn)商業(yè)數(shù)據(jù)庫是一個復(fù)雜的話題,從免費(fèi)社區(qū)版MySQL要升級到商業(yè)數(shù)據(jù)庫,通常是因?yàn)槠髽I(yè)在其數(shù)據(jù)庫需求方面面臨了新的挑戰(zhàn),而不同的企業(yè)面臨的挑戰(zhàn)并不相同;其次,這種替換涉及多種技術(shù)路線選擇,比如MySQL、PostgreSQL、自研分布式等。客戶會面臨成本高、遷移難度和兼容性等多方面的問題,這里不詳細(xì)展開。
我認(rèn)為,遷移到國內(nèi)開源數(shù)據(jù)庫的方案是最值得討論的。因?yàn)椋ㄟ^采訪和交流,我發(fā)現(xiàn)大部分選擇MySQL5.7替代數(shù)據(jù)庫的企業(yè),遷移難度、改造成本和兼容性是優(yōu)先考慮因素。
在這種情況下,遷移到國內(nèi)MySQL開源分支自然成為最合適的替換選擇。因?yàn)樗軌蛲瑫r滿足遷移難度低、改造成本低,同時與MySQL 5.7具有較好的兼容性。目前也符合國家開源政策的鼓勵和引導(dǎo)支持。
國內(nèi)的MySQL開源分支案例分析
近幾年,國內(nèi)涌現(xiàn)出了諸如GreatSQL、PolarDB-X、StoneDB、TenDBCluster-TenDB、AliSQL開源社區(qū)等一批基于MySQL開源分支,并已經(jīng)初步構(gòu)建多方參與的社區(qū)生態(tài),在應(yīng)用落地、社區(qū)活躍度、代碼貢獻(xiàn)等層面圍繞自身特點(diǎn)進(jìn)行不斷完善。
但很多人的認(rèn)知仍然停留在過去,關(guān)于“國內(nèi)的MySQL開源分支能用嗎?是否會涉及知識產(chǎn)權(quán)侵權(quán)?”這一問題,至今還在被持續(xù)熱議。
答案很明確:不會有涉及知識產(chǎn)權(quán)侵權(quán)的問題。陳書俊的文章《七問七答理清MySQL開源許可》已經(jīng)詳細(xì)回答了這個問題,這里不再贅述。
對于國內(nèi)MySQL開源分支是否能用的問題,答案是當(dāng)然能用。
以我看到的一個最新的國內(nèi)開源MySQL分支實(shí)踐案例為例(2023年6月27日發(fā)布的),梅州客商銀行成功上線了數(shù)據(jù)安全平臺和征信指標(biāo)變量衍生平臺業(yè)務(wù)系統(tǒng),這兩個業(yè)務(wù)系統(tǒng)都選擇了國內(nèi)MySQL開源分支GreatSQL。這表明,GreatSQL在金融領(lǐng)域的高可用性得到了實(shí)際驗(yàn)證。
因此,如果你考慮使用國內(nèi)的MySQL開源分支,GreatSQL會是一個不錯的選擇。相對來說,國內(nèi)的MySQL開源分支眾多,但在開源社區(qū)活躍度及成功案例數(shù)量、口碑等方面, GreatSQL要更突出些,這也是為什么不少M(fèi)ySQL DBA推薦它的原因。
GreatSQL是由萬里數(shù)據(jù)庫維護(hù)的MySQL技術(shù)路線國內(nèi)開源分支,它與MySQL和Percona Server完全兼容,完美繼承了MySQL在國內(nèi)的技術(shù)生態(tài),包括周邊工具,可作為它們的替代選擇,用于線上生產(chǎn)環(huán)境。更重要的是,GreatSQL完全免費(fèi)。
圖片來自GreatSQL官網(wǎng)
據(jù)悉,GreatSQL開源社區(qū)的初衷是將其打造成【中國的MariaDB】,即中國的MySQL技術(shù)路線自主開源數(shù)據(jù)庫。選擇Percona作為基礎(chǔ),是因?yàn)樗麄兿M谝呀?jīng)優(yōu)化了MySQL官方社區(qū)版的基礎(chǔ)上進(jìn)一步提升GreatSQL的性能。除了Percona Server已有的穩(wěn)定性、高效性和更便捷的管理等優(yōu)點(diǎn)外,GreatSQL還針對MGR進(jìn)行了大量深入的源碼級優(yōu)化,新增諸如地理標(biāo)簽、仲裁節(jié)點(diǎn)、讀寫節(jié)點(diǎn)可綁定動態(tài)VIP、智能選主、快速單主模式等多個企業(yè)級實(shí)用特性;同時修復(fù)大量嚴(yán)重故障場景下的穩(wěn)定性和可靠性問題,并對性能吞吐、穩(wěn)定性、安全性進(jìn)行了大幅提升,可適用于金融級應(yīng)用。
GreatSQL至今已經(jīng)發(fā)布了5個開源版本,包括兼容5.7和8.0的。社區(qū)保持每半年發(fā)布一個版本的開發(fā)節(jié)奏,這在開源社區(qū)中也屬于更新頻率非常高的,可見社區(qū)的活躍度高。
此外,GreatSQL擁有InnoDB并行查詢功能,在TPC-H測試中,平均性能提升了15倍,最高提升了40倍以上,這對于周期性數(shù)據(jù)聚合報(bào)告等業(yè)務(wù),如SAP、財(cái)務(wù)統(tǒng)計(jì)等來說非常有用。
安全方面,GreatSQL為進(jìn)一步增強(qiáng)數(shù)據(jù)庫安全性,新增表空間國密算法支持功能。在開源MySQL原有的keyring架構(gòu)上,通過國密算法增強(qiáng)開源MySQL keyring架構(gòu)安全性,從而提升數(shù)據(jù)庫整體安全性。去年,GreatSQL開源項(xiàng)目已經(jīng)通過了中國信通院的可信開源項(xiàng)目和可信開源社區(qū)評估,積極響應(yīng)國家開源政策,獲得了國家權(quán)威機(jī)構(gòu)的背書,這點(diǎn)也證明了GreatSQL開源項(xiàng)目的可用性和可信度。
我認(rèn)為,在傳統(tǒng)行業(yè),如金融、能源和電信等領(lǐng)域,廣泛使用MySQL的情況下,技術(shù)人員在維護(hù)MySQL開源數(shù)據(jù)庫方面可能存在能力不足的問題。事實(shí)上,有一半的企業(yè)需要購買外部技術(shù)支持服務(wù)。
而萬里數(shù)據(jù)庫在這方面是強(qiáng)項(xiàng),擁有過硬的技術(shù)支持服務(wù)體系。GreatSQL是由萬里數(shù)據(jù)庫主導(dǎo)成立的,從2021年成立到現(xiàn)在雖然只有2年多時間,但是萬里數(shù)據(jù)庫在MySQL領(lǐng)域的數(shù)據(jù)庫技術(shù)根基可以追溯到自2006年起與MySQL AB合作成立的MySQL中國研發(fā)中心,在那時候就積累了豐富的MySQL底層代碼研發(fā)和服務(wù)經(jīng)驗(yàn)。
寫在最后
MySQL是目前全球最流行的開源數(shù)據(jù)庫軟件,其巨大的市場占有率是不爭的事實(shí)。在中國,各行各業(yè)的用戶紛紛采用MySQL數(shù)據(jù)庫,其普及程度也是不言而喻。
然而,徹底拋棄MySQL技術(shù)路線轉(zhuǎn)投其它路線既不切實(shí)際,又可能伴隨著巨大的風(fēng)險(xiǎn)和轉(zhuǎn)變成本。因此,我們應(yīng)該善用國內(nèi)MySQL已經(jīng)建立的技術(shù)、人才生態(tài),結(jié)合國內(nèi)產(chǎn)業(yè)需求,加強(qiáng)我們自己的MySQL開源分支的獨(dú)立演進(jìn)能力。
即使甲骨文沒有將MySQL的開源許可證做出變更,也沒有將其閉源的意圖,發(fā)展國內(nèi)獨(dú)立的MySQL分支仍然勢在必行。這是因?yàn)镸ySQL在本地化方面存在硬傷,如適配國產(chǎn)軟硬件、支持國密算法以及適應(yīng)國內(nèi)業(yè)務(wù)量巨大的場景支持等方面都存在欠缺等。另外,希望甲骨文公司的MySQL需求評估部門全面考慮中國的情況和需求也不現(xiàn)實(shí)。
這也是為什么我強(qiáng)烈建議國內(nèi)開發(fā)者積極維護(hù)國內(nèi)MySQL開源分支的原因。然而,我們需要的是一個統(tǒng)一而強(qiáng)有力的MySQL開源分支,而不是分散的、零散的分支項(xiàng)目。只有在這個前提下,我們才能更好地發(fā)揚(yáng)開源精神,推動國內(nèi)數(shù)據(jù)庫技術(shù)的進(jìn)步,滿足不斷增長的業(yè)務(wù)需求。這將有助于確保MySQL在中國市場上的長期可持續(xù)性和成功發(fā)展。
附圖:Oracle 官方公示軟件產(chǎn)品對應(yīng)的出口管控類別編碼(MySQL 產(chǎn)品線,MySQL 企業(yè)版、MySQL 標(biāo)準(zhǔn)版、MySQL 經(jīng)典版、MySQL 集群版以及 MySQL 嵌入式版都在 5D992.C 類別中,但不包含社區(qū)版本)
參考文章:
【1】陰謀論: MySQL將死,國產(chǎn)數(shù)據(jù)庫的春天?
【2】七問七答理清MySQL開源許可