作者:Kenny Gryp / AIrton Lastori
兩位來自 MySQL 產品團隊。
本文來源:MySQL 官網博客
* 愛可生開源社區出品
1引子
在 Oracle,我們不斷尋找方法來改進產品,以更好地滿足您的需求。我們很高興地推出 MySQL 創新版(Innovation)和長期支持版(LTS,Long-Term Support),這是 MySQL 版本模型中的一個重要改進。
MySQL 5.7 及之前版本的補丁版本主要致力于錯誤修復和安全補丁。這在 MySQL 8.0 的持續交付模型中發生了變化,補丁版本也包含了新特性。這使得 MySQL 能夠更頻繁地向用戶發布新特性,而不僅僅是每隔幾年才能發布一次特性。但是,我們理解這種方法可能會給那些只需要關鍵補丁和較少行為變更的項目和應用帶來挑戰。我們傾聽了您的反饋并觀察了行業趨勢,現在我們正在過渡到一個版本模型,您可以在創新版(Innovation)和長期支持版(LTS)之間進行選擇。
創新版和 LTS 版的質量都是生產級的。如果您渴望訪問最新的功能和改進,并喜歡與最新技術保持同步,那么 MySQL 創新版本可能最適合您。該版本非常適合在快節奏的開發環境中工作的開發人員和 DBA,其中有高水平的自動化測試和現代的持續集成技術,可以實現更快的升級周期。另一方面,如果您的環境需要繼續保持已經固定的行為,那么 LTS 版本就是您的不二之選。這些版本僅包含必要的修復,因此可以減少數據庫軟件行為變更帶來的風險。
通過新的 MySQL 版本模型,您可以靈活地選擇適合您特定應用和環境需求的選項。我們的目標是確保您在創新版和 LTS 版中都能獲得卓越的用戶體驗。您可以在下面了解有關新版本模型和過渡過程的更多信息。
2新的 MySQL 版本模型過渡到創新版和 LTS 版
我們即將推出的新版本將過渡到新的 MySQL 版本模型。MySQL 8.1.0 將是我們的第一個創新版本,8.0.34+ 將只進行錯誤修復,直到 8.0 生命周期結束(EOL,定于 2026 年 4 月)。大約一年后,MySQL 8.x 版本最終將成為 LTS,這將為用戶從 8.0.x 遷移到 8.x LTS 版本提供充足的時間。
在實踐中,在這段過渡期間,如果您想要 MySQL 數據庫的最新功能、改進和所有錯誤修復,請使用創新版本(例如 8.1.x、8.2.x、8.3.x 等)。如果您的 MySQL 只需要錯誤修復,請使用 8.0.x 版本(例如 8.0.35、8.0.36、8.0.37 等)。在這兩種情況下,建議您都根據 Oracle 關鍵補丁更新(CPU)日歷每季度更新 MySQL 數據庫。當 8.x 成為 LTS 時,您可以從修復版本(例如 8.0.37)規劃、測試和遷移到 LTS 版本(例如 8.4.1)。
MySQL HeatWave 服務
MySQL HeatWave 服務由 Oracle 的 MySQL 團隊進行全面管理、開發和支持。我們通過最新版本的 MySQL 提供最新改進和安全補丁。MySQL HeatWave 用戶能從第 1 天開始訪問錯誤修復,以及最新的功能,包括 OLTP、OLAP、機器學習和 Lakehouse。
MySQL HeatWave 用戶現在可以選擇創新版本,從 8.1.0 開始,以及錯誤修復版本,從 8.0.34 開始。該服務為每個數據庫系統選擇 MySQL 版本提供了靈活性,使用戶可以根據應用程序要求混合匹配版本。使用 8.1+ 創新版本的用戶可以充分利用該服務的潛力,訪問最新功能和錯誤修復。另一方面,那些只需要關鍵錯誤修復且不需要最新功能的用戶可以為其 MySQL 數據庫選擇 8.0.x 版本。
MySQL 產品組合和支持生命周期
LTS 版本將遵循 Oracle 終身支持政策[1],包括 5 年的首要支持和 3 年的延長支持。創新版本將支持到下一個主要和次要版本。
MySQL 產品組合中的大多數產品將具有創新版和 LTS 版:
-
MySQL Server、MySQL Shell、MySQL Router、MySQL NDB 集群將具有創新版和 LTS 版。
-
用于 Kube.NETes 的 MySQL Operator,帶有 InnoDB ReplicaSet、Cluster和 ClusterSet 將具有創新版和 LTS 版。
-
MySQL 連接器將使用最新版本,但將被視為通用可用,并與所有支持的 MySQL 服務器版本兼容。
-
MySQL Workbench 將保留在 8.0.x,通常可用并與所有支持的 MySQL 服務器版本兼容。
-
8.0.34+ 僅為錯誤修復版本( 紅色)
-
創新版本( 灰色)可能每季度發布一次
-
大約每 2 年發布一個新的 LTS 版本( 藍色)。8.x LTS 版本的發布是一個例外,它將遠早于 8.0 的 EOL。
在未來幾年,MySQL 版本將類似于下圖所示:
創新版本注意:這僅是一個示例,沒有承諾版本編號將嚴格按照該呈現的方式。
創新版本類似于 MySQL 8.0 持續開發模型(< 8.0.34),包括錯誤修復、安全補丁和新功能。
對創新版本的支持限于下一個次要版本(創新或 LTS)。當前的周期目標是每季度發布一個創新版本,遞增次要版本號(例如 8.2、8.3 等)。創新版本內的補丁版本是可能的,但不太可能發生。
創新版本也將是通常可用的,建議用于生產環境中。錯誤修復和安全補丁通常會包含在下一個創新版本或 LTS 版本中,而不是作為該創新版本內補丁版本的一部分。在使用創新版本時,定期升級到最新的創新版本以跟上最新的錯誤修復和安全補丁是必要的。
除了錯誤修復、安全補丁和新功能,創新版本還將引入新的棄用功能、刪除功能甚至行為更改。為了減少在引入這些更改時升級的風險和復雜性,將制定策略和最佳實踐來規定何時以及如何進行。
棄用和刪除的功能
在 MySQL 的以前版本中,一個版本中的棄用功能(例如 5.7)意味著該功能可能會在下一個 主要/次要 版本中被刪除(例如 8.0)。隨著創新版本的引入,將會有更多的 主要/次要 版本,因此棄用和刪除功能何時發生將會改變。
當一個版本中棄用一個功能或行為時(例如 9.2 創新版本),該功能至少不能在一年內被刪除(直到 9.6 創新版本)。這是為了給使用創新版本的用戶修改數據庫部署時間。
注意:LTS 版本中不會有任何刪除。只有在第一個 LTS 版本(例如 8.4.0 LTS)中才能添加和刪除功能,之后不能再刪除。
在我們過渡到新模型并邁向第一個 8.x LTS 版本的過程中,預計會增加棄用和刪除的數量。
行為更改
除了創新版本中的新功能,隨著代碼被重構或 MySQL 被修改以更符合 SQL 標準的行為(這在 LTS 版本中不會發生),也期望會有行為更改。
行為更改可能會產生很大影響,特別是在處理任何與應用程序相關的事項時,比如 SQL 語法、新增保留字、查詢執行甚至查詢性能。行為更改可能需要應用程序更改,這對我們的用戶來說可能需要相當大的努力才能遷移。
除了記錄每個行為更改外,重要的是我們的用戶能夠使用必要的工具和配置設置,以便于版本之間的升級和降級。根據行為更改的類型,將使用不同的方法。隨著我們引入此類更改,將提供更多細節。
長期支持版本
大約每 2 年,一個次要版本將被指定為長期支持版本。這個版本將擁有 5 年的首要支持和 3 年的延長支持,與以前支持的版本相同。這類似于 MySQL 5.7 及更早版本。
LTS 也將是該主要版本的最后一個版本。下一個創新版本將增加主要版本號。例如,如果 MySQL 8.4.0 是 8.x LTS 版本,那么 MySQL 9.0 將是下一個創新版本。
升級和降級
隨著主要和次要創新版本的頻率增加,以及每 2 年的 LTS 版本,用戶將有更多受支持的版本可供選擇。成為創新系列的采用者將需要頻繁的更新以跟上錯誤修復和安全補丁,這需要升級和降級策略。
讓我們更深入地看看各種支持的升級和降級方案。
LTS 版本內的升級和降級
在 LTS 版本內,功能保持不變,數據格式也不會改變。
因此:
-
就地升級和降級是可能的。與 MySQL 8.0.x 版本(< 8.0.34)相比,這是一個改進,因為降級是不可能的,并且不建議跳過版本進行升級。
-
InnoDB CLONE 在 LTS 版本內都支持升級和降級。
完全過渡到這一點還需要一些工作,這將在 8.0.34 之后的版本中完成。
兩個 LTS 版本之間的升級和降級
-
可以從一個 LTS 版本遷移到下一個 LTS 版本,而無需執行多個中間創新版本的升級步驟。
-
可以通過就地升級、MySQL Shell 導出和導入以及 MySQL 異步復制進行升級。
-
僅為了回滾正在進行的升級,可以通過 MySQL Shell 導出和導入以及 MySQL 復制進行降級,詳見下文。
-
支持從一個創新版本或 LTS 版本就地升級到未來的創新版本,直到下一個 LTS 版本。復制和導出導入也可以實現。
-
降級將需要邏輯導出和導入。這與 MySQL 8.0.x(< 8.0.34)類似。
在業務關鍵環境中,升級通常使用 MySQL 異步復制完成,其中新版本環境被設置為當前版本的從庫。這允許近零停機時間的升級。
可以從 LTS 版本或創新版本異步復制到:
-
下一個 LTS 版本。
-
任何未來的創新版本,直到下一個 LTS 版本(LTS 8.4 → LTS 9.7,但不是 LTS 8.4 → LTS 10.7)。
如果在提升新版本后出現任何問題,支持回到前一個版本非常重要。因此,MySQL 異步復制將能夠復制到前一個版本。此支持僅用于回滾目的,其中尚未使用新功能,不應視為持續生產部署的一部分。
升級和降級的支持
以下是各種支持的升級和降級方法的概述:
升級
就地 | 克隆 | 異步復制 | 導出/導入 | |
---|---|---|---|---|
LTS 8.4 → LTS 9.7 | ? | ? | ? | ? |
LTS 8.4.11 → LTS 8.4.20 | ? | ? | ? | ? |
Innovation 8.1 → 8.2 | ? | ? | ? | ? |
Innovation 8.1 → 8.3 | ? | ? | ? | ? |
Innovation 9.1 → LTS 9.7 | ? | ? | ? | ? |
LTS 8.4 → LTS 10.7 | ? | ? | ? | ? |
降級
就地 | 克隆 | 異步復制 | 導出/導入 | |
---|---|---|---|---|
LTS 8.4.20 → 8.4.11 | ? | ? | ? | ? |
LTS 9.7 → LTS 8.4 | ? | ? | ?? | ?? |
LTS 9.7 → Innovation 9.6 | ? | ? | ?? | ?? |
LTS 9.7 → Innovation 9.5 | ? | ? | ?? | ?? |
(?) 表示支持僅限于回滾目的。
3總結
在我們過渡到這個新模型的過程中,歡迎你通過我們的社區渠道[2]和支持團隊[3]進行交流。
你可以在 mysql.com/downloads[4] 上下載最新的 MySQL 版本,或者在http://edelivery.oracle.com/[5]上的 Oracle 軟件交付云下載 MySQL 企業版二進制文件。
有關每個版本的詳細信息,包括新功能、改進、錯誤修復和可能的重大更改,請查看 MySQL 版本說明[6]。
我們對這個新版本模型帶來的機會感到激動,并熱切期待您的反饋。讓我們一起努力使 MySQL 變得更好。
本文原文:https://blogs.oracle.com/mysql/post/introducing-mysql-innovation-and-longterm-support-lts-versions
參考資料
[1]
Life Time Spuuort: https://www.oracle.com/support/lifetime-support/resources.html
[2]
Community Slack: http://mysqlcommunity.slack.com/
[3]
Oracle Support: https://support.oracle.com/
[4]
Downloads: https://www.mysql.com/downloads/
[5]
edelivery: http://edelivery.oracle.com/
[6]
Release Notes: https://dev.mysql.com/doc/