撰稿 | 言征
還沒有升級(jí)MySQL版本到8.0+的朋友,是時(shí)候提起精神來了!因?yàn)榻酉聛?,相信不久就?huì)面對(duì)“要不要進(jìn)行老項(xiàng)目改造和遷移”之類的、“飽和式KPI”靈魂拷問。
還有不滿三周的時(shí)間,MySQL5.7就要終結(jié)生命周期,光榮退休了。不止開發(fā)者們,就連云廠商們?cè)谧罱鼛讉€(gè)月以來也紛紛推出了相繼的應(yīng)對(duì)策略。
MySQL5.7將于兩周后迎來“終結(jié)”,MySQL8.0將于2026年4月終結(jié)。
來源:endoflife.date
1、各大廠商紛紛出招
首先,先看看Oracle怎么講。Oracle通知10月將終止MySQL5.7的支持。
MySQL 系列發(fā)布及EOL時(shí)間 圖源:Oracle
根據(jù)Oracle官網(wǎng)發(fā)布的博客,在接下來的幾年里,MySQL版本控制將類似于下面的示例圖。
來源:Oracle 官網(wǎng)
文章中解釋道,Oracle 為 MySQL 提供了兩個(gè)版本流: 創(chuàng)新版本和LTS版本。
創(chuàng)新版本類似于 MySQL 8.0 持續(xù)開發(fā)模型 (< 8.0.34),包括錯(cuò)誤修復(fù)、安全補(bǔ)丁和新功能。對(duì)創(chuàng)新版本的支持僅限于下一個(gè)次要版本(創(chuàng)新或 LTS)。創(chuàng)新版本中的補(bǔ)丁發(fā)布是可能的,但發(fā)生的可能性較小。創(chuàng)新版本具有生產(chǎn)級(jí)質(zhì)量,可以在生產(chǎn)環(huán)境中安全使用。
LTS 版本具有 5 年優(yōu)先支持和 3 年擴(kuò)展支持,與之前支持的版本相同。主要發(fā)布周期的最后一個(gè)版本將被指定為 LTS。(8.0 除外)。只能在第一個(gè) LTS 版本(例如 8.4.0 LTS)中刪除(和添加)功能,而以后則不能。
8.1 是第一個(gè)創(chuàng)新版本,8.0.34+ (LTS) 已過渡為僅修復(fù)錯(cuò)誤,直到 2026 年 4 月 8.0 生命周期結(jié)束 (EOL)。2024 年 7 月左右,最后一個(gè) 8.x 版本最終將成為 LTS讓用戶從 8.0.x 遷移到 8.x LTS 版本。
未來的發(fā)布節(jié)奏已經(jīng)公開:
- 創(chuàng)新發(fā)布可能會(huì)每季度發(fā)布一次。
- 大約每 2 年就會(huì)發(fā)布一個(gè)新的長期支持版本。8.x LTS 版本是一個(gè)例外,它將在 8.0 EOL 之前發(fā)布。
當(dāng)然,Oracle當(dāng)然是想各位用戶繼續(xù)在MySQL的世界里升級(jí)打怪了。MySQL5.7反正我不維護(hù)了,要么升級(jí)到8.0,要么升級(jí)到Oracle Database。
其次,來看一下云廠商的動(dòng)作,按照慣例,自然急忙制定延長服務(wù)的時(shí)間表了。
云廠商對(duì)于各大MySQL版本的支持截止時(shí)間 制表:51CTO技術(shù)棧
最先跟進(jìn)的是AWS和Azure。微軟 Azure 將會(huì)在 MySQL 5.7 EOL 之后,為其公有云用戶提供延長的服務(wù),最晚到 2025 年9月。
由上圖可以看出,Azure Database for MySQL v5.7 - 靈活服務(wù)器的創(chuàng)建將于2024 年 4 月結(jié)束。但是注意:某些方案(例如副本創(chuàng)建、時(shí)間點(diǎn)恢復(fù)以及從 Azure Database for MySQL - 單一服務(wù)器或 Azure Database for MariaDB 遷移到 Azure Database for MySQL - 靈活服務(wù)器)將允許創(chuàng)建 MySQL 版本5.7 直至延長支持期結(jié)束。
而亞馬遜,則除了推出類似的延長服務(wù)期之外,還給出了特別延長付費(fèi)服務(wù)。最長可以延期3年到2027年2月底。
圖源:AWS 官網(wǎng)
當(dāng)然不論是亞馬遜還是微軟,當(dāng)延長服務(wù)期結(jié)束后,MySQL 5.7 的去向也是一樣的:要么升級(jí)到 MySQL 8,要么遷移到其他數(shù)據(jù)上吧。
再來看國內(nèi)廠商,我們從阿里云官網(wǎng)上的通知查詢到了MySQL 5.5和MySQL 5.6 維護(hù)截止時(shí)間分別為2021年2月28日和2024年2月5日。網(wǎng)上有流傳阿里云 RDS MySQL5.7的維護(hù)截止時(shí)間是2024年的10月,但這一時(shí)間尚未得到官方證實(shí)。
同時(shí),騰訊云、華為云方面也沒有得到確切的停止維護(hù)的日期和延期服務(wù)時(shí)間。不過按照以往的慣例,至少也會(huì)有一年的延長期。
2、老版本挺“香”,不換!有的公司甚至不知情
在全球關(guān)系型數(shù)據(jù)庫市場(chǎng)中,MySQL 市場(chǎng)份額最高,達(dá)到 43.04%,排名第二的 Oracle 僅為16.76%。同時(shí)在 Shadowserver Foundation 于 2022 年 5 月份發(fā)布的一份全網(wǎng) MySQL 掃描報(bào)告中,MySQL的不同版本份額占比如下:
數(shù)據(jù)來源:Shadowserver Foundation
MySQL 5.7 占比為 46.7%,同時(shí)早在 2021 年 10 月份就“退伍”的 MySQL 5.6 份額占比仍高達(dá) 30%。
也就是說,在一個(gè)老版本終結(jié)后的半年內(nèi),相當(dāng)一部分企業(yè)和用戶仍然沒有及時(shí)升級(jí)到更新的版本或遷移到其它數(shù)據(jù)庫上,其中的原因除了沒有注意到終結(jié)的消息外,肯定還需要一定的升級(jí)和遷移時(shí)間和成本。
由此可以類比推測(cè),MySQL 5.7 EOL后,同樣會(huì)有很大一部分用戶抓著MySQL 5.7不放手。
此外,不同行業(yè)對(duì)于此事的反應(yīng)也是有所不同的,比如在國內(nèi)的金融行業(yè),大多數(shù)企業(yè)考慮遷移到有技術(shù)服務(wù)保障的國內(nèi)數(shù)據(jù)庫。
據(jù)調(diào)研,在使用 MySQL 開源數(shù)據(jù)庫的金融企業(yè)中,MySQL 5.7 版本應(yīng)用較廣。所有部署 MySQL 的金融企業(yè)中,近六成企業(yè)選擇 MySQL 5.7 版本作為其運(yùn)行版本,近三成企業(yè)使用 MySQL5.7 版本占其 MySQL 總部署量的 80% 以上。
上述報(bào)告指出,71% 的企業(yè)已知曉 MySQL5.7 版本生命周期結(jié)束事件,其中88% 的企業(yè)已做出應(yīng)對(duì)方案。所有應(yīng)對(duì)方案中,超五成企業(yè)希望遷移到國內(nèi)數(shù)據(jù)庫,另有約三分之?企業(yè)將遷移到 MySQL8.0 版本。
而在電信行業(yè),一部分企業(yè)甚至不知道 MySQL 5.7 EOL 的情況。部分企業(yè)表示將繼續(xù)使用 MySQL5.7 版本。選擇替代 MySQL5.7 時(shí),遷移難度、改造成本與兼容性是電信企業(yè)考慮的重要因素。
競(jìng)技世界數(shù)據(jù)庫專家、dbaplus 社群聯(lián)合發(fā)起人楊建榮在知乎的帖子上公開了一份 2022 年調(diào)查的 MySQL5.7 使用情況,同樣可以看出 9 家采用MySQL 5.7 的公司,7 家“暫無計(jì)劃”,只有兩家“準(zhǔn)備大規(guī)模升級(jí)”。
來源:知乎
3、為什么不愿意不升級(jí)/改造MySQL?
MySQL5.7 版本生命周期即將結(jié)束,由于缺少后續(xù)的開源社區(qū)技術(shù)支持,安全漏洞的修補(bǔ)維護(hù)也意味著停更,既然有著如此重要的風(fēng)險(xiǎn)擺在眼前,為何還會(huì)有這么多人不愿意升級(jí)/改造 MySQL 呢?
因?yàn)樘y了,零故障、平滑/無感升級(jí)的成本極高。僅僅是版本升級(jí),就會(huì)遇到下面這些問題需要多個(gè)部門協(xié)調(diào)解決。
來源:知乎
事實(shí)上,對(duì)于版本升級(jí)或者遷移改造而言,企業(yè)的決策者向來是有所審慎的。9月 21 日,由中國信通院上發(fā)布的《開源數(shù)據(jù)庫生態(tài)發(fā)展研究報(bào)告》中也有提到替換 MySQL 5.7 時(shí)的顧慮點(diǎn):
- 超過 70% 的企業(yè)在選擇 MySQL 5.7 替代數(shù)據(jù)庫時(shí)會(huì)考慮產(chǎn)品遷移難度與改造成本。
- 超 50% 的企業(yè)會(huì)考慮遷移數(shù)據(jù)庫的可靠性、可?性與可服務(wù)性。
- 此外,數(shù)據(jù)庫安全性、兼容性與產(chǎn)品性能等也是企業(yè)選擇替代數(shù)據(jù)庫時(shí)的重要考慮因素。相關(guān)主管部?的政策也會(huì)影響企業(yè)對(duì)替代數(shù)據(jù)庫進(jìn)?進(jìn)?步選擇。
整體上看,這是一個(gè)關(guān)于“安全風(fēng)險(xiǎn)和改造成本如何取舍”的應(yīng)用題。
4、寫在最后:誰能動(dòng)MySQL的蛋糕
2013年4月,MySQL5.7發(fā)布以來,在并行控制、并行復(fù)制等方面進(jìn)行了大量的優(yōu)化調(diào)整,5.7 版本正式 GA 于 2015 年 10 月份,這是 MySQL 到目前為止較為穩(wěn)定的版本分支。
正是由于其良好的穩(wěn)定性,許多企業(yè)已經(jīng)使用其部署業(yè)務(wù)架構(gòu)超過 10 年。
源:知乎
此次生命周期的停止,給技術(shù)決策者們留下很多選項(xiàng):升級(jí)到 Oracle 寄予厚望的 MySQL 8,還是切換到一向嫌棄 MySQL 被收購后失去開源味道的MariaDB,后者徹底換到 PostgreSQL 或其他數(shù)據(jù)庫?還是干脆托管給云數(shù)據(jù)庫?又或者自研?
雖說這些可能看起來很多,但往往留給不同企業(yè)不同業(yè)務(wù)場(chǎng)景可選的并不多。
從這個(gè)角度上看,MySQL 5.7 不僅生得燦爛,而且死得絢爛,它給了許多企業(yè)重新思考和選擇數(shù)據(jù)庫選型的機(jī)會(huì),一個(gè)讓其他數(shù)據(jù)庫搶占市場(chǎng),完善性能,壯大自己的機(jī)會(huì)。
參考鏈接:
https://learn.microsoft.com/en-us/azure/mysql/concepts-version-policy
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html
https://cloud.tencent.com/developer/article/2334565
https://www.zhihu.com/question/625919602/answer/3248344641
https://www.oracle.com/us/support/library/lifetime-support-technology-069183.pdf