MongoDB更改副本集成员的主机地址


在创建副本集时,最好采用域名的方式,而不是写入固定IP地址,这样方便以后迁移

步骤

  1. 停止所有副本集成员实例。
  2. 修改主节点的启动参数或配置文件,以单机模式启动实例。
  3. 修改system数据库中的replset集合,找到要修改的副本集,使用以下命令修改。
use local
cfg = db.system.replset.findOne( { "_id": "myrs" } )
cfg.members[0].host = "mongodb0.example.net:27017"
cfg.members[1].host = "mongodb1.example.net:27017"
cfg.members[2].host = "mongodb2.example.net:27017"
db.system.replset.update( { "_id": "myrs" } , cfg )

其中myrs是自己的副本集名称,host改为新的地址即可。
4. 停止主节点实例。
5. 复原第三步的操作,恢复主节点的启动参数或配置文件,以副本集模式启动实例。

参考

Change Hostnames in a Replica Set