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