将 5.0 独立运行版降级至 4.4
在尝试任何降级之前,请先熟悉本文档的内容。
降级路径
如果需要从 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
,请执行以下操作:
将
mongo
Shell 连接到mongod
实例。将
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
,则必须删除。有关完整列表,请参阅新聚合操作符。
步骤
警告
在继续执行降级过程之前,请确保已满足先决条件。