本文適用對象為ApsaraDB for MongoDB 3.4 版本的使用者。如果您收到了"無法續約"的提示,或者想知道 3.4 版本到期後該怎麼辦,請閱讀本指南。
我的執行個體受影響嗎?
你在什麼情況下需要看這一節:收到了 EOFS 相關通知,但不確定自己的執行個體是否受影響。
什麼是 EOFS?
EOFS(End of Full Support,停止全面支援)是阿里雲產品生命週期的一個階段。MongoDB 3.4 版本已進入 EOFS 階段,意味著:
|
時間節點 |
發生什麼 |
對你的影響 |
|
2023年1月1日 |
停止新購(EOM) |
無法再新購 3.4 版本執行個體 |
|
2026年6月30日 |
停止續約及變更配置(EOFS) |
無法續約、無法轉換付費類型、無法變更配置 (擴容/降配) |
|
2026年12月31日 |
終止服務(EOS) |
執行個體資源釋放,所有服務不可用 |
從 2026 年 6 月 30 日起,3.4 版本執行個體無法續約也無法變更配置。如果您到期後續約失敗,這正是原因所在。
如何判斷我的執行個體是否受影響?
-
登入 MongoDB 控制台。
-
在執行個體列表中查看您的執行個體的資料庫版本列。
-
如果版本顯示為 3.4,則您的執行個體受 EOFS 影響,需要儘快升級。
EOFS 後具體有哪些限制?
|
操作 |
EOFS 後是否支援 |
|
繼續使用現有執行個體(到期前) |
支援 |
|
續約 |
不支援(需升級後才能續約) |
|
變更配置(擴容磁碟/升配/降配) |
不支援 |
|
升級資料庫大版本 |
支援(需滿足升級條件) |
|
退訂 |
支援 |
|
自動續約 |
自動失效 |
EOFS 後不能轉為隨用隨付。到期後執行個體會進入 15 天鎖定狀態,期間無法訪問。詳見本文「來不及升級怎麼辦」部分。
我的執行個體能原地升級嗎?升級路徑速查
你在什麼情況下需要看這一節:知道要升級,但不知道自己的執行個體能否在控制台直接升級,還是需要遷移。
升級路徑速查表
根據您的執行個體架構和儲存類型,找到對應的升級路徑:
|
執行個體架構 |
儲存類型 |
目前的版本 |
可直接升級到 |
升級方式 |
|
單節點 |
本地碟版 |
3.4 |
4.0 |
控制台直接升級 |
|
複本集 |
本地碟版 |
3.4 |
4.0 或 4.2 |
控制台直接升級 |
|
分區叢集 |
本地碟版 |
3.4 |
4.0 或 4.2 |
控制台直接升級 |
如果您需要升級到 4.2 以上的版本(如 5.0、6.0、7.0、8.0),需要先升級到 4.2,將本地碟執行個體遷移成雲端硬碟,然後才能逐步升級;或直接建立高版本執行個體通過 DTS 遷移。
單節點執行個體可以直接升級嗎?
可以。3.4版本單節點執行個體可直接在控制台升級大版本。
本地碟執行個體最高可升級到4.2版本?
本地碟版執行個體通過控制台最高只能升級到 4.2。如果需要升級到 5.0 或更高版本,需要遷移到雲端硬碟執行個體後繼續升級。如需升級到高版本,推薦建立高版本的雲端硬碟版執行個體然後通過 DTS 遷移資料。原因如下:
-
低版本和高版本之間可能存在不相容情況,DTS遷移可以儘早暴露不相容問題,而大版本升級之後無法復原。大版本之間的相容性,請參見。
-
多次升級會導致多次閃斷。大版本升級的影響,請參見升級資料庫大版本。
3.4 版本能否直接升級到 4.2(跳過 4.0)?
-
3.4版本的複本集、分區叢集執行個體可以支援直接升級到4.2版本。後台會逐步升級大版本(3.4 → 3.6 → 4.0 → 4.2),每升級一次發生一次閃斷,您無需手動幹預中間版本。
-
3.4版本的單節點執行個體,僅支援升級到4.0版本。
升級會怎樣?影響評估
你在什麼情況下需要看這一節:知道要升級,但擔心升級會影響業務,不敢操作。
升級會中斷多久?
-
複本集、分區叢集:過程中會有1~2次主備切換,每次切換產生約30秒的閃斷。
說明跨版本升級(如 3.4 升級到 4.2),後台會逐步升級大版本,每一次升級都會觸發多次切換,且會有1~2次閃斷。請在業務低峰期執行升級,並確保應用程式具有重連機制。
降低影響:推薦生產環境的應用程式通過ConnectionStringURI地址串連資料庫。
通過ConnectionStringURI地址串連執行個體,可以確保串連的節點始終為主節點(Primary),不會因為主備切換而影響應用的讀寫操作。如何通過ConnectionStringURI地址串連資料庫,請參見複本集執行個體串連說明或分區叢集執行個體串連說明。
-
單節點執行個體:過程中會自動重啟執行個體,業務會中斷2分鐘左右。
升級會丟資料嗎?
不會。 升級過程不會導致資料丟失。但建議在升級前手動建立一次全量備份,以防萬一。
升級後帳號密碼會變嗎?
不會變。 帳號和密碼在升級後保持不變。
升級後串連地址會變嗎?
-
原地升級(複本集/分區叢集本地碟版):串連地址不變。
-
DTS 遷移(單節點執行個體):新執行個體的串連地址與原執行個體不同,需要在升級完成後修改業務代碼中的串連配置。
推薦使用 ConnectionStringURI 高可用串連地址串連資料庫。通過 ConnectionStringURI 串連,可以確保串連的節點始終為主節點(Primary),不會因為升級過程中的主備切換而影響讀寫。
升級後能復原嗎?
不能。 升級資料庫大版本後不支援降級。升級前請務必做好相容性測試和資料備份。
升級資料庫大版本後,低版本的備份資料不能恢複至ApsaraDB for MongoDB 執行個體。您可以下載備份檔案,將低版本的備份資料恢複至自建資料庫。詳見備份資料恢複。
升級前需要檢查磁碟空間嗎?
需要。 建議升級前磁碟剩餘空間不低於 20%,以確保升級過程有足夠的空間完成資料重組。當前已進入 EOFS 階段,無法再擴容磁碟。如果磁碟空間不足 20%,可嘗試以下方案:
-
清理冗餘資料:刪除已廢棄的集合、索引或臨時資料,釋放空間後再升級。
-
直接嘗試升級:20% 是建議值而非硬性門檻,空間略低時升級仍可能成功。如果升級過程中因空間不足失敗,系統會自動復原,執行個體狀態不受影響。
-
改用 DTS 遷移:購買一個磁碟空間更大的高版本新執行個體,通過 DTS 將資料移轉過去,遷移完成後釋放舊執行個體。此方案不受磁碟空間限制。
升級有哪些相容性風險?
3.4 升級到 4.0 和 4.2 時,各版本引入的相容性變更如下:
升級到 4.0(中間經過 3.6):
|
變更項 |
說明 |
|
|
不再返回單個文檔,改為返回 |
|
|
不再支援 |
|
數組排序 |
|
|
更新操作 |
同時更新多個欄位時,新欄位按字典順序添加 |
|
|
添加全域寫鎖,直到索引重建完成 |
|
|
不再支援(4.2 中正式刪除) |
升級到 4.2(中間經過 3.6 → 4.0 → 4.2,包含上述所有變更,另增加以下內容):
|
變更項 |
說明 |
|
|
刪除(3.4 起棄用,4.2 正式刪除),請改用 |
|
|
刪除(4.0 起不再支援,4.2 正式刪除) |
|
|
不再支援,請改用 |
|
|
不再支援,請改用 |
|
|
不再支援 |
|
|
不再支援 |
|
Retryable Writes |
開源驅動預設啟用 |
MongoDB 4.0 中 group 命令仍可使用但已標記為棄用,4.2 才正式移除。如果您的代碼中使用了 group 命令,升級到 4.2 前必須改為 aggregate 或 mapReduce。
完整的各版本相容性變更說明,請參見 MongoDB 資料庫大版本升級說明。
升級前檢查清單
你在什麼情況下需要看這一節:已確定升級路徑,準備開始升級操作。
在開始升級前,請逐項確認:
-
確認執行個體架構(單節點/複本集/分區叢集)和儲存類型(本地碟)
-
如為分區叢集,確認執行個體協議類型為 MongoDB 協議(DynamoDB 協議執行個體不支援升級)
-
如為分區叢集,瞭解升級過程中平衡器會被自動關閉,升級完成後自動重新開啟
-
確認升級路徑(控制台直接升級 or DTS 遷移)
-
確認目標版本(4.0 or 4.2)
-
檢查磁碟剩餘空間不低於 20%
-
手動建立一次全量備份
-
檢查代碼中是否使用了已移除的命令(
group、copydb、clone、geoNear、cloneCollection、repairDatabase等) -
確認 Java Driver 版本相容目標 MongoDB 版本
-
確認應用程式具有重連機制
-
選擇業務低峰期執行升級
-
使用 ConnectionStringURI 高可用串連地址
升級操作步驟
你在什麼情況下需要看這一節:已完成升級前檢查,需要具體的操作步驟。
控制台直接升級(複本集/分區叢集)
步驟 1:手動備份
升級前,建議手動建立一次全量備份。由於升級後不支援降級,必要時可將備份資料恢複到建立執行個體以快速恢複業務。
步驟 2:檢查磁碟空間
確保磁碟剩餘空間不低於 20%。如空間不足,參見磁碟空間不足的替代方案。
步驟 3:執行升級
-
登入 MongoDB 控制台。
-
在執行個體列表中,單擊目標執行個體 ID,進入執行個體基本資料頁面。
-
在執行個體基本資料地區,將滑鼠移動至升級資料庫版本上,單擊需要升級的資料庫大版本(4.0 或 4.2)。
-
在彈出的確認對話方塊中,單擊確定。
升級大版本時,系統會自動升級到該大版本的最新可用小版本。
步驟 4:等待升級完成
-
升級過程中執行個體狀態會顯示為"升級中"。
-
升級過程中會有 2~3 次約 30 秒的閃斷,請確保應用程式具有重連機制。
-
升級完成後,執行個體狀態恢複為"運行中"。
-
如果升級任務長時間顯示"升級中",可以修改切換時間為"立即切換"來加速完成。
升級後驗證
升級完成後,請進行以下驗證:
-
版本確認:在控制台確認執行個體的資料庫版本已變更為目標版本。
-
串連測試:使用用戶端串連執行個體,確認串連正常。
-
資料完整性:檢查關鍵業務資料是否完整。
-
應用功能:測試核心業務功能是否正常。
-
效能監控:觀察升級後的效能指標是否正常。
來不及升級怎麼辦?
你在什麼情況下需要看這一節:執行個體即將到期但來不及完成升級,或者執行個體已經到期鎖定。
執行個體即將到期但來不及升級
如果您在執行個體到期前無法完成升級,請儘快提交工單說明以下資訊:
-
執行個體 ID
-
當前到期時間
-
升級計劃和時間表
支援人員團隊會根據您的具體情況協助處理。
執行個體已經到期並鎖定
如果執行個體已經到期並進入鎖定狀態:
-
鎖定時間軸:執行個體到期後的第 1~15 天處於鎖定狀態,無法訪問。到期後的第 16 天,執行個體的計算資源會被釋放。到期後的第 23 天,資料不再保留。
警告-
上述時間軸僅適用於3.4版本複本集執行個體。
-
單節點執行個體、本地碟版分區叢集執行個體釋放後不支援從資源回收筒恢複。請在執行個體鎖定期間(到期後第 1~15 天)儘快升級大版本。切勿等到計算資源釋放後再處理。詳見資源回收筒注意事項。
-
-
恢複方式 :鎖定狀態下的MongoDB執行個體允許升級大版本。因此您可以先升級大版本,再進行續約。
-
恢複後立即升級:恢複訪問後,請儘快升級資料庫大版本。
常見問題(FAQ)
Q1:執行個體即將到期,無法續約,應如何處理?
A:單節點、複本集或分區叢集,都可以直接在控制台升級到 4.0 或 4.2,升級後即可正常續約。如有特殊情況,請立即提交工單說明。
Q2:自動續約失效的原因
A:3.4 版本從 2026 年 6 月 30 日起停止續約服務,自動續約會因此失效。系統會在 EOFS 日期前通過簡訊和站內信通知。您需要升級資料庫大版本後才能恢複續約。
Q3:升級到 4.0 還是 4.2?
A:
-
如果您的代碼中使用了
group命令,建議先升級到 4.0(4.0 中group仍可用但已棄用),完成代碼改造後再升級到 4.2。 -
如果沒有使用
group命令,可以直接升級到 4.2。4.2 支援控制台空間回收(compact),4.0 不支援。
Q4:升級後 Java 代碼是否需要修改?
A:3.4 升級到 4.0/4.2 通常不需要修改 Java 代碼,但請確認:
-
沒有使用
group命令(4.2 移除) -
沒有使用
copydb、clone、cloneCollection、geoNear、repairDatabase等已移除的命令 -
Java Driver 版本相容目標 MongoDB 版本(建議使用 MongoDB 官方推薦的 Driver 版本,參見 Driver Compatibility Matrix)
Q5:200G 資料移轉需要多久?
A:使用 DTS 遷移,200G 資料通常在小時層級完成。全量遷移免費,無流量費。如果需要增量遷移(無縫切換),需先開啟源執行個體的 oplog。
Q6:升級過程中能否取消?
A:升級任務運行中無法取消。但您可以修改切換時間往後延,等業務低峰期再切換。建議在業務低峰期發起升級。
Q7:升級後複本集控制台只顯示 2 個節點
A:這是正常現象。複本集的 Hidden 節點預設不在控制台顯示。執行個體實際仍然是三節點架構,不影響高可用。
Q8:執行個體到期後資料是否保留?
A:3.4版本僅有本地碟版。
|
執行個體架構 |
保留原則 |
如何處理 |
|
單節點、分區叢集執行個體 |
|
在第16天之前,完成大版本升級和續約。 |
|
複本集執行個體 |
|
在第23天之前,完成大版本升級和續約。 |
續約恢複訪問後可匯出資料,匯出完成後可以退訂執行個體。
Q9:3.4 到 4.0 有沒有相容性問題?
A:3.4 到 4.0 沒有已知的高風險相容性問題。主要的變更包括 aggregate 返回 cursor 而非單個文檔、不再支援 snapshot 查詢選項、reIndex 添加全域寫鎖等。建議在升級前參照相容性變更清單進行代碼排查。
Q10:EOFS 後能否轉為隨用隨付?
A:不能。EOFS 後既不能續約也不能轉隨用隨付。到期後執行個體會進入 15 天鎖定期,之後釋放資源。唯一的解決方案是升級資料庫大版本。
Q11:沒有營運人員,如何完成升級?
A:建議:
-
提交工單,說明您的執行個體資訊和升級需求,支援人員團隊會提供協助。
-
聯絡阿里雲夥伴提供升級服務。
Q12:升級時報錯 "InvalidSaleComponentFault"
A:這通常是因為選擇的規格在目標版本中不存在。例如獨享型可能沒有 8核32GB 的規格。請在升級時選擇目標版本支援的規格,或提交工單確認可用規格列表。
Q13:Navicat 無法串連 3.4 執行個體
A:3.4 版本與高版本 Navicat 驅動可能存在相容性問題。建議使用較低版本的 Navicat 驅動,或使用 mongo shell / mongosh 串連。升級到 4.0/4.2 後可使用最新版 Navicat。
附錄:相關文檔
|
文檔名稱 |
說明 |
|
官方升級操作文檔 |
|
|
官方生命週期說明 |
|
|
相容性變更說明 |
|
|
到期/鎖定執行個體恢複 |
|
|
DTS 遷移操作指南 |