重命名自管理副本集
MongoDB5.0 已于 10 月2024 结束生命周期。不再支持此版本的文档。要升级5.0 部署,请参阅 MongoDB6 。0 升级程序。
要重命名副本集,您必须关闭副本集的所有节点,然后使用新的副本集名称配置每个节点的 local
数据库。
该程序需要停机。
先决条件
确保副本集未分片。重命名过程仅适用于未分片的副本集。
在重命名副本集之前,请对 MongoDB 部署执行完整MongoDB 部署。
启用身份验证后,确保用户角色对每个节点的
local
数据库中的system.replset
集合具有find
、insert
和remove
权限。提示
可以通过发出
rolesInfo
命令并将showPrivileges
和showBuiltinRoles
字段均设置为true
来查看角色的特权。
步骤
2
重命名副本集。
对每个副本集节点执行以下步骤:
在不使用
--replSet
选项的其他端口上启动副本集成员。更新副本集名称。
如果使用的是配置文件,请将
replication.replSetName
设置为新名称。
连接到副本集成员。
使用以下命令更新本地数据库中的副本集名称:
/* Set `newId` to the new replica set name */ var newId = '<new replica set name>' var doc = db.getSiblingDB("local").system.replset.findOne() var oldId = doc._id doc._id = newId db.getSiblingDB("local").system.replset.insertOne(doc) db.getSiblingDB("local").system.replset.deleteOne({_id: oldId}) 关闭副本集节点。
注意
Ops Manager
如果您正在使用MongoDB Ops Manager ,则在关闭副本集成员之前,必须停止MongoDB Ops Manager对副本集的管理。 有关此过程的更多信息,请参阅从 Ops Management 中删除进程
在其原始端口启动副本集成员。
如果使用配置文件,确保将
replication.replSetName
设置为新的副本集名称。