全部產品
Search
文件中心

ApsaraDB for MongoDB:MongoDB資料庫大版本升級說明

更新時間:Dec 03, 2024

ApsaraDB for MongoDB支援升級資料庫大版本。升級前,建議您瞭解不同產品架構、不同版本的執行個體支援升級到的資料庫大版本以及不同資料庫大版本的相容性變更說明。

支援升級的資料庫大版本

  • ApsaraDB for MongoDB控制台可以直接升級資料庫大版本,但不同產品架構、不同版本的執行個體支援升級的版本不同,具體情況如下:

    產品架構

    規格類型

    執行個體的資料庫大版本

    可升級到的資料庫大版本

    單節點架構

    通用型雲端硬碟版

    MongoDB 4.0

    暫無更高的資料庫大版本可升級。

    通用型雲端硬碟版

    MongoDB 3.4

    不支援升級資料庫大版本。

    如果您需要升級資料庫大版本,可以通過建立新執行個體,使用新執行個體替換舊執行個體的方法實現。如何建立單節點執行個體,請參見建立單節點執行個體

    複本集架構

    獨享型雲端硬碟版

    MongoDB 7.0

    暫無更高的資料庫大版本可升級。

    MongoDB 6.0

    MongoDB 7.0

    MongoDB 5.0

    MongoDB 6.0

    MongoDB 4.4

    MongoDB 5.0

    • 通用型本地碟版

    • 獨享型本地碟版

    • 獨佔物理機

    MongoDB 4.2

    不支援升級資料庫大版本。

    如果您需要升級資料庫大版本,可以通過建立新執行個體,使用新執行個體替換舊執行個體的方法實現。如何棄置站台集執行個體,請參見棄置站台集執行個體

    MongoDB 4.0

    MongoDB 4.2

    MongoDB 3.4

    • MongoDB 4.0

    • MongoDB 4.2

    MongoDB 3.2

    MongoDB 3.0

    分區叢集架構

    獨享型雲端硬碟版

    MongoDB 7.0

    暫無更高的資料庫大版本可升級。

    MongoDB 6.0

    MongoDB 7.0

    MongoDB 5.0

    MongoDB 6.0

    MongoDB 4.4

    MongoDB 5.0

    • 通用型本地碟版

    • 獨享型本地碟版

    • 獨佔物理機

    MongoDB 4.2

    不支援升級資料庫大版本。

    如果您需要升級資料庫大版本,可以通過建立新執行個體,使用新執行個體替換舊執行個體的方法實現。如何建立分區叢集執行個體,請參見建立分區叢集執行個體

    MongoDB 4.0

    MongoDB 4.2

    MongoDB 3.4

    • MongoDB 4.0

    • MongoDB 4.2

    MongoDB 3.2

    MongoDB 3.0

  • 如果您需要跨產品架構或跨儲存類型升級執行個體大版本,可以先建立目標高版本執行個體,然後通過DTS將源執行個體遷移至高版本的新執行個體中。建立執行個體的方法,請參見建立執行個體

    遷移資料的方法如下:

大版本相容性變更說明

不同資料庫大版本的相容性變更說明如下:

重要
  • 升級資料庫大版本時,執行個體的狀態需為運行中。如何升級資料庫大版本,請參見升級資料庫版本

  • 升級資料庫大版本後不支援降級。

  • MongoDB 4.0及以上大版本已相容MongoDB 3.6。如果您需要使用MongoDB 3.6大版本的功能,請升級到MongoDB 4.0及以上大版本。

  • 相容性變更說明僅包含ApsaraDB for MongoDB核心的變更,不包含MongoDB執行個體管控功能的變更。

資料庫大版本

相容性變更說明

MongoDB 7.0

  • 將大版本升級至MongoDB 7.0情境,目前不存在相容性問題。

  • 如果需要將MongoDB 7.0版本降級至其他大版本,則需要先移除7.0版本支援的功能,例如:

    • 刪除所有柱狀索引(columnar indexes)。

    • 登出通過setClusterParameter命令設定的叢集參數。具體資訊,請參見setClusterParameter

    • 刪除所有使用encryptedFields選項建立的集合。

    • 刪除所有的複合萬用字元索引(Compound wildcard indexes)。

MongoDB 7.0的更多資訊,請參見Compatibility Changes in MongoDB 7.0

MongoDB 6.0

  • 如果彙總管道裡使用的記憶體超過了100 MB,預設會寫入資料到磁碟的臨時檔案中。若要更改此預設行為,請修改全域參數allowDiskUseByDefaultfalse

    6.0之前的版本需要顯式指定{ allowDiskUse: true }參數,才能寫入資料到磁碟的臨時檔案中。

  • 通過dropIndexes刪除索引時,如果使用萬用字元*,不會刪除_id索引,也不會刪除分區鍵索引,更多資訊,請參見dropIndexes

  • 不再支援Mongo Shell工具,請使用mongosh工具替代。

  • 不再支援$explain$hint$max$maxTimeMS等操作符。

  • 當TTL索引expireAfterSeconds被設定為NaN時,會被認為設定為0,可能會立馬淘汰到期文檔。

  • 不再支援SCRAM-SHA-1認證方法。

  • 不再支援reIndex命令以及相對應的reIndex()方法。

MongoDB 6.0的更多資訊,請參見Compatibility Changes in MongoDB 6.0

MongoDB 5.0

  • Secondary節點(從節點)的Read Concern層級從available變更為local,更多資訊,請參見Read Concern

  • Write Concern的預設值由1變更為majority

  • 不再支援db.collection.ensureIndex(),請使用db.collection.createIndex()替代。

  • saslStart以及saslContinue命令的參數進行嚴格校正,無法相容mgosaslContinue只需要conversationIdpayload參數,而mgo提供了一個多餘的參數 mechanism,更多資訊,請參見mgo

  • 刪除geoSearch

MongoDB 5.0的更多資訊,請參見Compatibility Changes in MongoDB 5.0

MongoDB 4.4

  • compact不再支援force選項,更多資訊,請參見compact

  • 不再支援geoSearch,更多資訊,請參見geoSearch

  • 支援在主備資料庫上同時建立索引,以減少索引建立帶來的主備延遲。即使在索引建立過程中,也可以保證備庫訪問到最新的資料。

MongoDB 4.4的更多資訊,請參見Compatibility Changes in MongoDB 4.4

MongoDB 4.2

  • 不再支援geoNear,請使用$geoNear (aggregation)替代,更多資訊,請參見$geoNear (aggregation)

  • 不再支援repairDatabase

  • 不再支援並刪除cloneCollection,請使用mongoexportmongoimport替代,更多資訊,請參見mongoexportmongoimport

  • 不再支援afterClusterTime,更多資訊,請參見afterClusterTime

  • 開源MongoDB 4.2+相容驅動預設啟用Retryable Writes,更多資訊,請參見Retryable Writes

  • 刪除groupcopydbclone

MongoDB 4.2的更多資訊,請參見Compatibility Changes in MongoDB 4.2

MongoDB 4.0

  • reIndex添加一個全域寫鎖,直到索引重建完成,更多資訊,請參見reIndex

  • 不再支援copydbclone

MongoDB 4.0的更多資訊,請參見Compatibility Changes in MongoDB 4.0

MongoDB 3.6

  • aggregate不再支援返回單個文檔,而是返回cursor。使用者可以通過cursor指定batch的規格。aggregate的更多資訊,請參見aggregate

  • $type: "array"能直接檢測到數群組類型的文檔,之前只能檢測到嵌套型的數群組類型文檔。$type的更多資訊,請參見$type

  • 數組排序結果,發生以下變更:

    • find中新增可選項sort,用於提供排序結果明細。find的更多資訊,請參見find

    • $sort(aggregation)$sort stage的記憶體限制為100 MB,更多資訊,請參見$sort (aggregation)

  • 在進行更新操作時,如果需要同時更新多個欄位,新欄位將按照字典順序添加,更多資訊,請參見$set

  • 不再支援snapshot查詢選項。

MongoDB 3.6的更多資訊,請參見Compatibility Changes in MongoDB 3.6

MongoDB 3.4

  • 不再支援group,請使用db.collection.aggregate()或者db.collection.mapReduce()替代。更多資訊,請參見db.collection.aggregate()db.collection.mapReduce()

  • 使用$in運算式匹配+ upsert: trueupdate

    樣本:

    db.c.drop()
    db.c.update({a:{$in:[1]}},{$addToSet:{a:2}},{upsert:true}) //在MongoDB 3.4插入會失敗,MongoDB 3.4之前的大版本可成功插入一條記錄。
    db.c.update({a:{$elemMatch:{$in:[2]}}},{$addToSet:{a:2}},{upsert:true}) //在MongoDB 3.4可成功插入一條記錄。

    update的更多資訊,請參見update

MongoDB 3.4的更多資訊,請參見Compatibility Changes in MongoDB 3.4

相關API

介面

說明

UpgradeDBInstanceEngineVersion

升級ApsaraDB for MongoDB執行個體的資料庫大版本。