重命名自管理副本集
要重命名副本集,您必须关闭副本集的所有节点,然后使用新的副本集名称配置每个节点的 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}) 关闭副本集节点。
在其原始端口启动副本集成员。
如果使用配置文件,确保将
replication.replSetName
设置为新的副本集名称。