如何升級Mongodb——官方指南

今天看到有人在羣裏問如何從4.0 升級到4.2,網上說的雲裏霧裏的。此處貼出官網的升級指南,底部有原網文檔連接。像這種操作手冊的話,如果網上沒有人有詳細的對應版本的教程,最全的文檔第一時間應該想到官方。該內容範圍來源於與Google,再次鳴謝Google translate

將獨立版本升級到4.2

如果您需要有關升級到4.2的指導,則MongoDB提供主要版本升級服務,以確保平穩過渡而不會中斷您的MongoDB應用程序。

升級建議和清單

升級時,請考慮以下事項:

升級版本路徑

要將現有的MongoDB部署升級到4.2,必須運行4.0系列發行版。

要從4.0系列之前的版本升級,必須連續升級主要版本,直到升級到4.0系列爲止。例如,如果運行的是3.6系列,則必須先 升級到4.0 然後才能升級到4.2

防範

在開始升級之前,請參閱MongoDB 4.2兼容性更文檔,以確保您的應用程序和部署與MongoDB 4.2兼容。開始升級之前,請解決部署中的不兼容性。

在升級MongoDB之前,請務必先在臨時環境中測試應用程序,然後再將升級部署到生產環境中。

降級注意事項

升級到4.2後,如果需要降級,建議將其降到最新的4.0補丁程序。

前提條件

MMAPv1WiredTiger存儲引擎

MongoDB 4.2刪除了對不建議使用的MMAPv1存儲引擎的支持。

如果您的4.0部署使用MMAPv1,則必須在升級到MongoDB 4.2之前將4.0部署更改爲WiredTiger Storage Engine。有關詳細信息,請參見將Standalone更改爲WiredTiger

回顧當前配置

MongoDB 4.2中,mongod mongos進程將不會以MMAPv1特定配置選開頭 。如果指定了先前版本的運行WiredTigerMongoDB,則它們會忽略MMAPv1配置選項。對於MongoDB 4.2,您必須從配置中刪除它們。

功能兼容版本

4.0實例必須featureCompatibilityVersion設置爲4.0。要檢查featureCompatibilityVersion

複製

複製的

db.adminCommand ( {  getParameter  1  featureCompatibilityVersion  1  }  )

該操作應返回包含的結果 "featureCompatibilityVersion" : { "version" : "4.0" }

要設置或更新featureCompatibilityVersion,請運行以下命令:

複製

複製的

db.adminCommand ( {  setFeatureCompatibilityVersion  “ 4.0”  }  )

有關更多信息,請參見setFeatureCompatibilityVersion

下載4.2二進制文件

通過包管理器

如果從MongoDB的安裝MongoDBaptyumdnf,或 zypper資料庫,你應該使用你的包管理器升級到4.2

請遵循適用於您的Linux系統的4.2安裝說。這將涉及爲新版本添加存儲庫,然後執行實際的升級過程。

手動

如果尚未使用程序包管理器安裝MongoDB,則可以從MongoDB下載中心手動下載MongoDB二進制文件。

有關更多信息,請參見4.2安裝說

升級過程

1

4.2二進制文件替換現有的4.0二進制文件。

關閉您的mongod實例。用4.2 mongod二進制文件替換現有的二進制文件。

使用4.2重新啓動部署mongod

2

啓用向後不兼容的4.2功能。

此時,您可以運行4.2二進制文件,而沒有與4.0不兼容的4.2 

要啓用這些4.2功能,請將功能兼容版本(FCV)設置爲4.2

小費

啓用這些向後不兼容的功能可能會使降級過程複雜化,因爲在降級之前必須刪除所有持久的向後不兼容的功能。

建議在升級後,允許您在不啓用這些功能的情況下運行部署,並且要在預熱期內確保降級的可能性最小。如果您確信降級的可能性很小,請啓用這些功能。

setFeatureCompatibilityVersion針對admin數據庫運行命令:

複製

複製的

db.adminCommand ( {  setFeatureCompatibilityVersion  “ 4.2”  }  )

此命令必須執行對內部系統集合的寫入。如果由於某種原因該命令未成功完成,則可以安全地重試該命令,因爲該操作是冪等的。

升級後

TLS選項替換不推薦使用的SSL選項

MongoDB 4.2開始,MongoDB棄用mongodmongosmongo shellSSL選項 以及相應的net.ssl Options配置文件選項。

爲避免棄用消息,請TLSmongodmongosmongo shell使用新選項 

4.2兼容的驅動程序默認重試寫入

需要與MongoDB 3.64.0兼容的官方驅動程序,包括retryWrites=true連接字符串的選項才能 爲該啓用可重試的寫入。

MongoDB 4.2兼容的官方驅動程序默認情況下啓用可重試寫。升級到需要兼容重寫的4.2兼容驅動程序的應用程序可以忽略該retryWrites=true 選項。應用升級到需要的4.2兼容的驅動程序 禁用重試寫操作必須包括 retryWrites=false連接的字符串中。

 

 

將副本集升級到4.2

如果您需要有關升級到4.2的指導,則MongoDB提供主要版本升級服務,以確保平穩過渡而不會中斷您的MongoDB應用程序。

升級建議和清單

升級時,請考慮以下事項:

升級版本路徑

要將現有的MongoDB部署升級到4.2,必須運行4.0系列發行版。

要從4.0系列之前的版本升級,必須連續升級主要版本,直到升級到4.0系列爲止。例如,如果運行的是3.6系列,則必須先 升級到4.0 然後才能升級到4.2

防範

在開始升級之前,請參閱MongoDB 4.2兼容性更改文檔,以確保您的應用程序和部署與MongoDB 4.2兼容。開始升級之前,請解決部署中的不兼容性。

在升級MongoDB之前,請務必先在臨時環境中測試應用程序,然後再將升級部署到生產環境中。

降級注意事項

升級到4.2後,如果需要降級,建議將其降級到最新的4.0補丁程序。

讀關注多數(3成員主要-次要-仲裁器體系結構)

MongoDB 3.6開始,"majority"默認情況下,MongoDB啓用對讀取關注的支持 

您可以禁用讀取關注,"majority"以防止存儲高速緩存壓力固定具有主從仲裁器(PSA)體系結構的三成員副本集或具有三成員PSA分片的分片羣集。

注意

禁用"majority"讀取關注會影響對分片羣集上事務的支持 。特別:

但是,它不影響 副本集上的事務。對於副本集上的事務,即使禁用了讀取關注,也可以爲多文檔事務指定讀取關注"majority"("snapshot" "local")"majority"

禁用"majority"讀取關注會禁用對MongoDB 4.0及更早版本的變更流的支持。對於MongoDB 4.2+,禁用讀取關注"majority"不會影響更改流的可用性。

當升級到4.2且禁用了多數閱讀功能時,可以將更改流用於部署。

有關更多信息,請參見禁用多數閱讀關注

更改流恢復令牌

MongoDB 4.2使用版本4.0.7中引入的版本1(v1)更改流 恢復令牌

恢復令牌_data類型取決於MongoDB版本,在某些情況下,取決於更改流打開/恢復時的功能兼容性版本(fcv)(即,fcv值的更改不會影響已打開的更改流的恢復令牌。 )

MongoDB版本

功能兼容版本

恢復令牌_data類型

MongoDB 4.2及更高版本

“ 4.2”或“ 4.0”

十六進制編碼的字符串(v1)

MongoDB 4.0.7及更高版本

“ 4.0”或“ 3.6”

十六進制編碼的字符串(v1)

MongoDB 4.0.6及更早版本

“ 4.0”

十六進制編碼的字符串(v0)

MongoDB 4.0.6及更早版本

“ 3.6”

BinData

MongoDB 3.6

“ 3.6”

BinData

MONGODB 4.0.6或更早版本升級到MONGODB 4.2

在升級過程中,客戶端可能會v1在連接到尚未更新的成員(即僅接受v0令牌)而失敗時嘗試使用新的恢復令牌恢復更改流。在這種情況下,客戶端必須等待4.2升級完成才能恢復更改流。

前提條件

所有會員版本

所有副本集成員必須正在運行版本4.0。要從3.6系列或更早的版本升級副本集,請首先 將副本集的所有成員升級到最新的4.0系列版本,然後按照從MongoDB 4.0升級到4.2的過程進行操作。

MMAPv1WiredTiger存儲引擎

MongoDB 4.2刪除了對不建議使用的MMAPv1存儲引擎的支持。

如果您的4.0部署使用MMAPv1,則必須在升級到MongoDB 4.2之前將4.0部署更改爲WiredTiger Storage Engine。有關詳細信息,請參見將副本集設置爲WiredTiger

回顧當前配置

MongoDB 4.2中,mongod mongos進程將不會以MMAPv1特定配置選項開頭 。如果指定了先前版本的運行WiredTigerMongoDB,則它們會忽略MMAPv1配置選項。對於MongoDB 4.2,您必須從配置中刪除它們。

功能兼容版本

4.0副本集必須 featureCompatibilityVersion設置爲4.0

爲確保副本集的所有成員都 featureCompatibilityVersion設置爲4.0,請連接到每個副本集成員並檢查featureCompatibilityVersion

複製

複製的

db .adminCommand ( {  getParameter 1 featureCompatibilityVersion 1  }  )

所有成員都應返回包含的結果 "featureCompatibilityVersion" : { "version" : "4.0" }

要設置或更新featureCompatibilityVersion,請在主服務器上運行以下命令。大多數數據承載成員必須可用:

複製

複製的

db .adminCommand ( {  setFeatureCompatibilityVersion “ 4.0”  }  )

有關更多信息,請參見 setFeatureCompatibilityVersion

副本集成員狀態

確保沒有副本集成員處於ROLLBACK RECOVERING狀態。

下載4.2二進制文件

通過包管理器

如果從MongoDB的安裝MongoDBaptyumdnf,或 zypper資料庫,你應該使用你的包管理器升級到4.2

請遵循適用於您的Linux系統的4.2安裝說明。這將涉及爲新版本添加存儲庫,然後執行實際的升級過程。

手動

如果尚未使用程序包管理器安裝MongoDB,則可以從MongoDB下載中心手動下載MongoDB二進制文件。

有關更多信息,請參見4.2安裝說明

升級過程

您可以使用滾動升級從MongoDB 4.0升級到4.2,以通過在其他成員可用時分別升級成員來最大程度地減少停機時間。

1

升級副本集的輔助成員。

一次升級 一個副本集的輔助成員:

  1. 關閉mongod實例並將4.0二進制文件替換爲4.2二進制文件。
  2. 重新啓動成員。

2

降級主副本集。

mongo外殼連接到主要節點,並用於 rs.stepDown()降低主要節點並強制選擇新的主要節點。

3

升級主數據庫。

rs.status() 顯示主節點已卸任並且另一成員已PRIMARY處於狀態時,請升級已卸除的主抵押:

  1. 關閉降級的主數據庫,然後用mongod4.2二進制文件替換 二進制文件。
  2. 重新啓動成員。

4

啓用向後不兼容的4.2功能。

此時,您可以運行4.2二進制文件,而沒有與4.0不兼容的4.2 功能

要啓用這些4.2功能,請將功能兼容版本(FCV)設置爲4.2

小費

啓用這些向後不兼容的功能可能會使降級過程複雜化,因爲在降級之前必須刪除所有持久的向後不兼容的功能。

建議在升級後,允許您在不啓用這些功能的情況下運行部署,並且要在預熱期內確保降級的可能性最小。如果您確信降級的可能性很小,請啓用這些功能。

小費

確保沒有正在進行的初始同步。setFeatureCompatibilityVersion在進行初始同步時運行 命令將導致重新啓動初始同步。

在主數據庫上setFeatureCompatibilityVersion,在admin數據庫中運行命令:

複製

複製的

Db.adminCommand ( {  setFeatureCompatibilityVersion “ 4.2”  }  )

此命令必須執行對內部系統集合的寫入。如果由於某種原因該命令未成功完成,則可以安全地在主數據庫上重試該命令,因爲該操作是冪等的。

升級後

TLS選項替換不推薦使用的SSL選項

MongoDB 4.2開始,MongoDB棄用mongodmongosmongo shellSSL選項 以及相應的net.ssl Options配置文件選項。

爲避免棄用消息,請TLSmongodmongosmongo shell使用新選項 

4.2兼容的驅動程序默認重試寫入

需要與MongoDB 3.64.0兼容的官方驅動程序,包括retryWrites=true連接字符串中的選項才能 爲該連接啓用可重試的寫入。

MongoDB 4.2兼容的官方驅動程序默認情況下啓用可重試寫入。升級到需要兼容重寫的4.2兼容驅動程序的應用程序可以忽略該retryWrites=true 選項。應用升級到需要的4.2兼容的驅動程序 禁用重試寫操作必須包括 retryWrites=false連接的字符串中。

 

將分片集羣升級到4.2

如果您需要有關升級到4.2的指導,則MongoDB提供主要版本升級服務,以確保平穩過渡而不會中斷您的MongoDB應用程序。

升級建議和清單

升級時,請考慮以下事項:

升級版本路徑

要將現有的MongoDB部署升級到4.2,必須運行4.0系列發行版。

要從4.0系列之前的版本升級,必須連續升級主要版本,直到升級到4.0系列爲止。例如,如果運行的是3.6系列,則必須先 升級到4.0, 然後才能升級到4.2。

防範

在開始升級之前,請參閱MongoDB 4.2中兼容性更改文檔,以確保您的應用程序和部署與MongoDB 4.2兼容。開始升級之前,請解決部署中的不兼容性。

在升級MongoDB之前,請務必先在臨時環境中測試應用程序,然後再將升級部署到生產環境中。

降級注意事項

升級到4.2後,如果需要降級,建議將其降級到最新的4.0補丁程序。

讀關注多數(3成員主要-次要-仲裁器體系結構)

從MongoDB 3.6開始,"majority"默認情況下,MongoDB啓用對讀取關注的支持 。

您可以禁用讀取關注,"majority"以防止存儲高速緩存壓力固定具有主從仲裁器(PSA)體系結構的三成員副本集或具有三成員PSA分片的分片羣集。

注意

禁用"majority"讀取關注會影響對分片羣集上事務的支持 。特別:

但是,它不影響 副本集上的事務。對於副本集上的事務,即使禁用了讀取關注,也可以爲多文檔事務指定讀取關注"majority"(或"snapshot" 或"local")"majority"

禁用"majority"讀取關注會禁用對MongoDB 4.0及更早版本的變更流的支持。對於MongoDB 4.2+,禁用讀取關注"majority"不會影響更改流的可用性。

當升級到4.2且禁用了“多數”閱讀功能時,可以將更改流用於部署。

有關更多信息,請參見禁用多數閱讀關注

更改流恢復令牌

MongoDB 4.2使用版本4.0.7中引入的版本1(即v1)更改流 恢復令牌

恢復令牌_data類型取決於MongoDB版本,在某些情況下,取決於更改流打開/恢復時的功能兼容性版本(fcv)(即,fcv值的更改不會影響已打開的更改流的恢復令牌。 ):

MongoDB版本

功能兼容版本

恢復令牌_data類型

MongoDB 4.2及更高版本

“ 4.2”或“ 4.0”

十六進制編碼的字符串(v1)

MongoDB 4.0.7及更高版本

“ 4.0”或“ 3.6”

十六進制編碼的字符串(v1)

MongoDB 4.0.6及更早版本

“ 4.0”

十六進制編碼的字符串(v0)

MongoDB 4.0.6及更早版本

“ 3.6”

BinData

MongoDB 3.6

“ 3.6”

BinData

從MONGODB 4.0.6或更早版本升級到MONGODB 4.2時

在升級過程中,分片羣集的成員將繼續產生v0令牌,直到mongos升級第一個 實例。升級 mongos實例將開始產生v1變更流恢復令牌。這些不能用於在mongos尚未升級的上恢復流 。

前提條件

所有會員版本

要將分片羣集升級到4.2,羣集的所有成員必須至少爲4.0版。升級過程將檢查羣集的所有組件,如果任何組件運行的版本早於4.0,則將生成警告。

MMAPv1到WiredTiger存儲引擎

MongoDB 4.2刪除了對不建議使用的MMAPv1存儲引擎的支持。

如果您的4.0部署使用MMAPv1,則必須在升級到MongoDB 4.2之前將4.0部署更改爲WiredTiger Storage Engine。有關詳細信息,請參閱將分片羣集更改爲WiredTiger

回顧當前配置

在MongoDB 4.2中,mongod和 mongos進程將不會以MMAPv1特定配置選項開頭 。如果指定了先前版本的運行WiredTiger的MongoDB,則它們會忽略MMAPv1配置選項。對於MongoDB 4.2,您必須從配置中刪除它們。

功能兼容版本

4.0分片羣集必須 featureCompatibilityVersion設置爲4.0。

爲了確保分片羣集的所有成員都 featureCompatibilityVersion設置爲4.0,請連接到每個分片副本集成員和每個配置服務器副本集成員,然後檢查featureCompatibilityVersion:

小費

對於已啓用訪問控制的分片羣集,要對分片副本集成員運行以下命令,您必須以分片本地用戶身份連接到該成員。

複製

複製的

db.adminCommand ( {  getParameter 1 , featureCompatibilityVersion 1  }  )

所有成員都應返回包含的結果 。"featureCompatibilityVersion" : { "version" : "4.0" }

要設置或更新featureCompatibilityVersion,請在上運行以下命令mongos

複製

複製的

db.adminCommand ( {  setFeatureCompatibilityVersion “ 4.0”  }  )

有關更多信息,請參見 setFeatureCompatibilityVersion

副本集成員狀態

對於分片和配置服務器,請確保沒有副本集成員處於 ROLLBACKRECOVERING狀態。

備份config數據庫

可選,但推薦。作爲預防措施,升級分片羣集之前,請對config數據庫進行備份 。

PowerPC上的哈希索引

僅適用於PowerPC

對於散列索引,MongoDB 4.2確保PowerPC上浮點值2 63的散列值與其他平臺一致。

儘管可能包含大於2 63的浮點值的字段上的哈希索引是不受支持的配置,但是客戶端仍可以在索引字段具有值2 63的位置插入文檔。

  • 如果PowerPC上當前的MongoDB 4.0分片羣集已將2 63的分片鍵值進行哈希處理,則在升級之前:
    1. 備份文檔;例如mongoexport,使用--query來在分片字段中使用2 63選擇文檔。
    2. 刪除值爲2 63的文檔。

按照以下步驟升級後,將導入已刪除的文檔。

  • 如果PowerPC上的現有MongoDB 4.0集合具有未用作分片鍵的值2 63的哈希索引條目,則您還可以選擇在升級之前刪除索引,然後在升級完成後重新創建索引。

要列出部署的所有哈希索引並查找其索引字段包含值2 63 哈希索引和PowerPC check的文檔。

下載4.2二進制文件

使用程序包管理

如果從MongoDB的安裝MongoDB的apt,yum,dnf,或 zypper資料庫,你應該使用你的包管理器升級到4.2。

請遵循適用於您的Linux系統的4.2安裝說明。這將涉及爲新版本添加存儲庫,然後執行實際的升級過程。

下載4.2二進制手動

如果尚未使用程序包管理器安裝MongoDB,則可以從MongoDB下載中心手動下載MongoDB二進制文件。

有關更多信息,請參見4.2安裝說明

升級過程

1

禁用平衡器。

mongo外殼連接到分片mongos羣集中的實例,然後運行sh.stopBalancer()以禁用平衡器:

複製

複製的

SH.stopBalancer ()

注意

如果正在進行遷移,則系統將在停止平衡器之前完成正在進行的遷移。您可以運行 sh.isBalancerRunning()以檢查平衡器的當前狀態。

要驗證是否禁用了平衡器,請運行run sh.getBalancerState(),如果禁用了平衡器,則返回false:

複製

複製的

SH.getBalancerState ()

有關禁用平衡器的更多信息,請參閱 禁用平衡器

2

升級配置服務器。

  1. 一次升級 一個副本集的輔助成員:
    1. 關閉輔助mongod實例,並將4.0二進制文件替換爲4.2二進制文件。
    2. 啓動4.2二進制用--configsvr, --replSet--port。包括部署使用的任何其他選項。

複製

複製的

mongod --configsvr --replSet <replSetName> --port <端口> --dbpath <路徑> --bind_ip localhost,<IP地址>

如果使用配置文件,更新文件來指定,, ,和,然後啓動4.2二進制文件:sharding.clusterRole: configsvrreplication.replSetNamenet.portnet.bindIp

複製

複製的

分片

   clusterRole : configsvr

複製

   replSetName : <string>

net

   port : <port>

   bindIp : localhost,<IP地址>

storage

   dbpath : <path>

包括適用於您的部署的任何其他設置。

    1. 等待成員恢復SECONDARY狀態,然後再升級下一個輔助成員。要檢查成員的狀態,請rs.status()mongoshell中發出。

對每個次要成員重複上述步驟。

  1. 降級主副本集。
    1. mongo外殼連接到主要數據庫,並用於 rs.stepDown()降低主要數據庫並強制選擇新的主要數據庫:

複製

複製的

rs.stepDown ()

    1. rs.status()顯示主節點已降級並且另一個成員已PRIMARY進入狀態時,請關閉已降級的主mongod節點,然後用4.2二進制文件替換二進制文件。
    2. 啓動4.2二進制用--configsvr--replSet, --port,和--bind_ip選項。包括先前部署使用的所有可選命令行選項:

複製

複製的

mongod --configsvr --replSet <replSetName> --port <端口> --dbpath <路徑> --bind_ip localhost,<IP地址>

如果使用配置文件,更新文件來指定,, ,和,然後啓動4.2二進制文件:sharding.clusterRole: configsvrreplication.replSetNamenet.portnet.bindIp

複製

複製的

分片

   clusterRole : configsvr

複製

   replSetName : <string>

net

   port : <port>

   bindIp : localhost,<IP地址>

storage

   dbpath : <path>

包括適合您的部署的任何其他配置。

3

升級碎片。

一次升級一個碎片。

對於每個分片副本集:

  1. 一次升級 一個副本集的輔助成員:
    1. 關閉mongod實例並將4.0二進制文件替換爲4.2二進制文件。
    2. 啓動4.2二進制用--shardsvr--replSet, --port,和--bind_ip選項。包括適用於您的部署的所有其他命令行選項:

複製

複製的

mongod --shardsvr --replSet <replSetName> --port <端口> --dbpath <路徑> --bind_ip本地主機,<IP地址>

如果使用配置文件,更新文件,包括, ,,和 ,然後啓動4.2二進制文件:sharding.clusterRole: shardsvrreplication.replSetNamenet.portnet.bindIp

複製

複製的

sharding

   clusterRole : shardsvr

複製

   replSetName : <string>

net

   port : <port>

   bindIp : localhost,<IP地址>

storage

   dbpath : <path>

包括適合您的部署的任何其他配置。

    1. 等待成員恢復SECONDARY狀態,然後再升級下一個輔助成員。要檢查成員的狀態,可以rs.status()在 mongoshell中發出。

對每個次要成員重複上述步驟。

  1. 降級主副本集。

mongo外殼連接到主要數據庫,並用於 rs.stepDown()降低主要數據庫並強制選擇新的主要數據庫:

複製

複製的

rs.stepDown ()

  1. rs.status() 顯示主節點已卸任並且另一成員已PRIMARY處於狀態時,請升級已卸除的主抵押:
    1. 關閉降級的主數據庫,然後用mongod4.2二進制文件替換 二進制文件。
    2. 啓動4.2二進制用--shardsvr--replSet, --port,和--bind_ip選項。包括適用於您的部署的所有其他命令行選項:

複製

複製的

mongod --shardsvr --replSet <replSetName> --port <端口> --dbpath <路徑> --bind_ip本地主機,<IP地址>

如果使用配置文件,更新文件來指定,, ,和,然後啓動4.2二進制文件:sharding.clusterRole: shardsvrreplication.replSetNamenet.portnet.bindIp

複製

複製的

sharding

   clusterRole : shardsvr

複製

   replSetName : <string>

net

   port : <port>

   bindIp : localhost,<IP地址>

storage

   dbpath : <path>

包括適合您的部署的任何其他配置。

4

升級mongos實例。

將每個mongos實例替換爲4.2二進制文件並重新啓動。包括適合您的部署的任何其他配置。

注意

--bind_ip當分片羣集成員在不同主機上運行時,或者如果遠程客戶端連接到分片羣集,則必須指定該選項。有關更多信息,請參見 Localhost綁定兼容性更改

複製

複製的

mongos --configdb csReplSet / <rsconfigsver1:port1>,<rsconfigsver2:port2>,<rsconfigsver3:port3> --bind_ip localhost,<IP地址>

如果從MongoDB 4.0.6或更早版本升級,

一旦mongos用於部署實例升級,即mongos例如開始產生 v1變化流恢復令牌。這些令牌不能用於在mongos尚未升級的實例上恢復流。

5

重新啓用平衡器。

使用4.2 mongoShell,連接到 mongos集羣中的並運行 sh.startBalancer()以重新啓用平衡器:

複製

複製的

SH.startBalancer()

從MongoDB 4.2開始,sh.startBalancer()還可以對分片羣集進行自動拆分。

如果您不希望在啓用平衡器時啓用自動拆分功能,則還必須運行sh.disableAutoSplit()

有關重新啓用平衡器的更多信息,請參閱“ 啓用平衡器”

6

啓用向後不兼容的4.2功能。

此時,您可以運行4.2二進制文件,而沒有與4.0不兼容的4.2 功能

要啓用這些4.2功能,請將功能兼容版本(FCV)設置爲4.2。

小費

啓用這些向後不兼容的功能可能會使降級過程複雜化,因爲在降級之前必須刪除所有持久的向後不兼容的功能。

建議在升級後,允許您在不啓用這些功能的情況下運行部署,並且要在預熱期內確保降級的可能性最小。如果您確信降級的可能性很小,請啓用這些功能。

mongos實例上,setFeatureCompatibilityVersion在admin 數據庫中運行 命令:

複製

複製的

db.adminCommand({  setFeatureCompatibilityVersion “ 4.2”  } )

此命令必須執行對內部系統集合的寫入。如果由於某種原因該命令未成功完成,則可以安全地重試該命令, mongos因爲該操作是冪等的。

注意

從MongoDB 4.0開始,mongos嘗試連接功能兼容版本(fCV)大於的mongod實例 時,二進制文件將崩潰。例如,您無法將MongoDB 4.0版本連接到fCV設置爲4.2 的4.2分片羣集。但是,您可以將MongoDB 4.0版本連接 到fCV設置爲4.0 的4.2分片羣集。mongosmongosmongos

升級後

TLS選項替換不推薦使用的SSL選項

從MongoDB 4.2開始,MongoDB棄用mongodmongosmongo shell的SSL選項 以及相應的net.ssl Options配置文件選項。

爲避免棄用消息,請TLS對mongodmongosmongo shell使用新選項 。

4.2兼容的驅動程序默認重試寫入

需要與MongoDB 3.6和4.0兼容的官方驅動程序,包括retryWrites=true連接字符串中的選項才能 爲該連接啓用可重試的寫入。

與MongoDB 4.2兼容的官方驅動程序默認情況下啓用可重試寫入。升級到需要兼容重寫的4.2兼容驅動程序的應用程序可以忽略該retryWrites=true 選項。應用升級到需要的4.2兼容的驅動程序 禁用重試寫操作必須包括 retryWrites=false連接的字符串中。

Power PC和2的散列索引值63

如果在PowerPC上,您發現哈希索引字段的值爲2 63,

  • 如果刪除了文檔,請從導出中將其替換(作爲先決條件的一部分完成)。
  • 如果在升級之前刪除了哈希索引,請重新創建索引。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章