即將停服,如何規劃 MongoDB 升級
MongoDB 4.4和5.0即將停止維護,是時候升級數據庫軟件了。下面簡述升級的方法。
譯自How to Plan Your MongoDB Upgrade,作者 Jan Wieremjewicz 是 Percona 的高級產品經理,領導 MongoDB 和 PostgreSQL 的產品。他在開發、部署和維護企業系統方面擁有豐富的經驗。在專業方面,他熱衷于簡單的解決方案,以解決復雜的問題和用戶體驗。
MongoDB 4.4 將在 2024 年 2 月結束生命周期(EOL),MongoDB 5.0 將在 8 月加入它。如果這還不足以激勵您開始規劃 MongoDB 升級,還要考慮升級有助于消除過時軟件可能帶來的安全和合規風險,并提供可提高數據庫性能、安全性和可伸縮性的功能。
以下是較新版本 MongoDB 中的一些新功能,可能會促使您決定盡早升級。
MongoDB 5.x
- 數據庫的動態分片功能允許用戶隨著工作負載和數據庫的發展改變分片鍵,而無需停機。
- 對時間序列集合進行分片可以增強可伸縮性和性能。
- MongoDB 5.3 引入了集群集合,它根據相關的集群索引鍵存儲數據。這在特定順序很重要的分析查詢中,將查詢性能置于寫入速度之上。
MongoDB 6.x
- 時間序列集合中的輔助和復合索引可以提升讀性能,并啟用新的用例,例如地理索引。
- 增強的變更數據流允許用戶訪問已修改文檔的先前和當前狀態,以促進下游文檔更新等任務并引用已刪除的文檔。這也支持數據定義語言(DDL)操作,例如創建或刪除集合和索引。
- 管理員可以在將審計事件存儲到磁盤之前使用符合密鑰管理互操作性協議(KMIP)的密鑰管理系統對其進行壓縮和加密。
MongoDB 7.x
- 修改時間序列數據的能力可增加靈活性和控制力。
- 新的聚合管道操作符和變量可實現復雜的數據轉換。
- 通配符索引可改進查詢性能,實現更快的搜索。
- 可查詢加密可在允許查詢加密數據的同時維護數據保密性。
我將重點介紹適用于任何 MongoDB 升級的一些最佳實踐,而不是給出過于技術化的 MongoDB 升級指南,無論您是由于 4.4 EOL 而激勵還是希望利用 7.0 中的最新特性。如果您正在尋找更多技術化、步驟詳細的演練,可以觀看最佳實踐 - 升級到 MongoDB 4.4。
1. 評估您當前的環境
雖然常被忽視,但對現有設置進行全面評估對于最大限度地降低風險和停機時間,并實現順利、成功的升級至關重要。
這可能看起來顯而易見,但首先要識別您正在使用的 MongoDB 版本。知道您當前的版本對于確定您現有設置與最新版本之間的差距以及選擇適當的升級路徑都非常重要。
接下來,評估您的資源和硬件。例如,您當前的服務器在 CPU、內存和存儲容量方面是否足以高效處理新版本?從長遠來看,新設置是否能滿足您未來的工作負載和擴展需求?
然后,了解您如何使用 MongoDB。它主要用于事務數據?分析查詢?游戲應用程序?不同版本的 MongoDB 可能更適合特定的用例,因此評估新目標版本是否與數據庫的預期用途一致至關重要。
最后,在進行升級之前,對當前數據執行徹底備份。這不僅包括數據庫的內容,還包括您的應用程序數據、自定義設置、復制配置、索引和安全設置。Percona Backup for MongoDB是一個開源社區備份工具,可幫助您備份所有這些數據。
2. 測試,再測試,再測試
在生產環境中實施升級之前,極其重要的是要創建一個單獨的沙箱或準生產環境來模擬您的生產設置。您的目標是識別轉換期間可能出現的任何問題、沖突或意外行為。這使您可以在一個安全可控的環境中捕獲潛在問題,并盡量避免長時間的意外停機時間。
3. 制定回滾計劃,以防不測
您可以做所有的準備工作,但不可預見的困難還是會發生。盡量找有升級經驗的人來幫助您,無論他們是您的員工還是顧問。至少,如果確實出了問題,十分關鍵的是要有辦法回滾到數據庫的上一個版本。
一個全面的 MongoDB 回滾計劃通常包括:
- 對數據和配置進行備份。
- 記錄當前狀態。
- 向關鍵利益相關者傳達您的計劃。
- 確定您的回滾觸發器。
- 創建詳細的、記錄了的回滾過程。
- 監控您的環境。
- 分析和了解升級中出了什么問題。
4. 決定使用穩定版本還是開發版本
MongoDB的穩定版本經過了廣泛的測試,被認為是可用于生產的,而那些還在開發中的版本可能還沒有完全準備好面向大眾。您在這些版本之間的選擇應該由您組織的風險承受能力和升級的具體目標來指導。
5. 確定您的升級步驟和路徑
雖然升級過程將因具體環境而異,但基本 MongoDB 升級的一般推薦路徑是:
- 進行備份。
- 下載新二進制文件。
- 將特性兼容值(FCV)設置為當前/以前的版本。
- 按照您的系統類型,以滾動方式以正確的順序關閉 Mongo 進程。
- 用新二進制文件替換您當前的二進制文件。
- 使用您的系統類型所需的滾動方式,以正確的順序啟動 Mongo 進程。
- 等待24-48小時(取決于您的數據庫),以確保沒有問題。
- 將 FCV 設置為新版本。
最好是以緩慢穩定的方式進行升級過程。從您當前的版本逐步升級到每個主要版本,直到達到預期的版本。例如,如果您使用的是 4.4,那么該過程看起來應該是4.4.1+ 升級到 5.0,再升級到 6.0,最后升級到 7.0。不要從 4.4 跳到 7.0。
后續步驟
完成升級后,進行一些升級后測試和優化,以確保新的 MongoDB 數據庫正如預期那樣運行。我們將在下一篇文章中討論這一點。
如果您需要協助 MongoDB 升級,Percona 可以幫助您制定個性化的升級計劃。我們的專家將幫助您升級 MongoDB,主動識別和緩解升級周期及之后可能出現的障礙、不兼容問題和潛在的性能問題。