如何重命名mongodb副本集?

whe*_*den 6 mongodb

我使用默认配置启动了一些MongoDB副本集并将它们添加到Cloud Manager,但由于默认副本集名称为"rs0",因此在UI中很难区分它们.有没有办法更改副本集的名称,最好不必删除并重新导入群集中的所有数据?

我尝试过使用rs.reconfig(链接),但它不允许您更改副本集名称.

whe*_*den 24

是! 这个过程非常简单:

  1. 以非复制模式启动所有节点
    • mongod在每台服务器上
    • 启动mongod备份.如果使用/etc/mongod.conf,请删除该replication部分.如果不这样做,请省略--replSet选项mongod
  2. 刷新local缓存复制集配置的数据库
    • 在每台服务器上,以admin用户身份打开mongo shell并运行 use local; db.dropDatabase()
  3. 以复制模式再次启动所有节点
    • mongod在每台服务器上
    • 如果您使用/etc/mongod.conf,请使用名称添加该replication部分并开始.如果没有,就用mongodmongod--replSet <new-name>
  4. 初始化副本集
    • 在其中一个节点上以admin用户身份打开mongo shell.(它将成为新的主要)
    • rs.initiate().不要传递任何参数rs.initiate().(它会因错误而失败)您想要设置的任何其他配置都可以在rs.reconfig()以后更改.
    • 对于每个辅助节点,运行rs.add('[secondary.host.name]')以将其添加到副本集.
    • 等待辅助设备同步

这不需要您转储和重新导入您的数据,如果您自动化它,可以在最短的停机时间(以及辅助节点同步时性能下降的时间段)完成.

这是一个完整的东西(假设您正在使用/etc/mongod.conf和管理mongodSystem V/Upstart /讲话的东西service).