[英]How do I rename a mongodb replica set?
我使用默认配置启动了一些 MongoDB 副本集并将它们添加到Cloud Manager ,但由于默认副本集名称是“rs0”,因此很难在 UI 中区分它们。 有没有办法更改副本集的名称,最好不必删除并重新导入集群中的所有数据?
我试过使用rs.reconfig
( link ) 但它不允许您更改副本集名称。
是的! 这个过程非常简单:
mongod
mongod
备份。 如果您使用/etc/mongod.conf
,请删除replication
部分。 如果不这样做,请省略mongod
的--replSet
选项刷新缓存复制集配置的local
数据库
use local; db.dropDatabase()
use local; db.dropDatabase()
(确保管理员用户/root 用户在local
数据库上具有dbAdmin
角色)以复制模式再次启动所有节点
mongod
/etc/mongod.conf
,请使用新名称重新添加replication
部分并启动mongod
。 如果没有,请使用--replSet <new-name>
启动mongod
rs.initiate()
。 不要将任何参数传递给rs.initiate()
。 (它会因错误而失败rs.reconfig()
稍后可以使用rs.reconfig()
更改您要设置的任何其他配置。rs.initiate()
的同一节点上,对于每个辅助节点,运行rs.add('[secondary.host.name]')
以将其添加到副本集。这不需要您转储和重新导入您的数据,如果您将其自动化,则可以在最短的停机时间(以及辅助同步时性能下降的一段时间)内完成。
这是一个完整的剧本(假设您正在使用/etc/mongod.conf
并通过 System V/Upstart/things that speak service
管理mongod
。)
您可以按照以下步骤删除现有的副本集,然后可以使用新的副本集启动 mongods
在没有 --replSet 的情况下启动所有 mongod
mongod --dbpath 数据/rs3 --port 27019 --oplogSize 64
注意: - 以上命令适用于 windows 机器
为所有相应的 mongod 启动 mongo 删除现有的副本集使用本地
db.system.replset.remove({_id:'OldReplicaSetName'})
使用 --replSet ex - mongod --dbpath data/rs3 --port 27019 --oplogSize 64 --replSet mySet 用新的副本集启动每个 mongod 注意:- 以上命令适用于 Windows 机器
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.