在尝试任何降级之前,请先熟悉本文档的内容。
降级路径
如果需要从 5.0 降级,请降级到最新的 4.4 补丁版本。
MongoDB 仅支持单版本降级。您无法降级到比当前版本落后多个版本的版本。
例如,您可以将 5.0 系列部署降级为 4.4 系列部署。但是,不支持将 4.4 系列部署进一步降级为 4.2 系列部署。
创建备份
可选但建议使用。创建数据库备份。
访问控制
如果您的部署启用了访问权限控制,则降级用户权限必须包括跨数据库列出和管理索引的权限。 具有 root角色的用户拥有所需的权限。
先决条件
要从 5.0 降级到 4.4,必须删除保留的不兼容功能和/或更新不兼容的配置设置。其中包括:
1. 集群默认读关注和写关注
MongoDB 5.0 更改了集群范围读关注和写关注的默认值,降级到 MongoDB 4.4 可能会将这些默认值改回。在降级之前,请考虑手动配置集群的默认读关注和写关注:
要手动配置集群的读或写关注的默认值,请使用
setDefaultRWConcern命令。如果集群包含仲裁节点,且您之前已禁用
"Majority"读关注以防止在某些情况下出现缓存压力,则可能需要在降级后配置--enableMajorityReadConcern false或replication.enableMajorityReadConcern: false。
2 。具有. 或$ 字符的文档字段
MongoDB 5.0 新增了对在文档字段名中包含 . 或 $ 字符的支持。在降级到 MongoDB 4.4 之前,必须删除包含 . 或 $ 字符的字段名称的所有文档。
3. Slim 格式时区数据文件
MongoDB 5.0 支持 Slim 格式的时区数据文件。如果在部署中使用 Slim 格式的时区数据文件,如通过 --timeZoneInfo 命令行选项或 processManagement.timeZoneInfo 配置文件设置提供给 MongoDB,则您必须降级到 MongoDB 4.4.7 或更高版本,否则必须恢复时区数据文件以使用以前的非 Slim 格式的数据文件。
4. 降级特征兼容性版本(fCV)
要降级独立运行的 featureCompatibilityVersion,请执行以下操作:
将
featureCompatibilityVersion降级为"4.4"。db.adminCommand({setFeatureCompatibilityVersion: "4.4"}) setFeatureCompatibilityVersion命令对内部系统集合执行写入操作,并且是幂等的。如果由于任何原因未成功完成该命令,请在mongod实例上重试该命令。
5. 删除 fCV 5.0 保留功能
仅当 fCV 设置为 "5.0" 时,才需要执行以下步骤。
删除所有与 4.4 不兼容的保留 5.0 功能。其中包括:
- 时间序列集合
- 删除所有时间序列集合。
- 运行时审核过滤器管理
通过将节点的配置文件中的
auditLog.runtimeConfiguration设置为false,禁用运行时审核筛选器管理。在本地配置文件中更新此实例的审核过滤器。
6. 删除 5.0 功能
删除所有使用 5.0 功能的保留功能。这些功能包括但不限于:
如果任何视图定义包含 5.0 操作符,如
$dateAdd或$sampleRate,则必须删除。有关完整列表,请参阅新聚合操作符。
步骤
警告
在继续执行降级过程之前,请确保已满足先决条件。