mongodb Replica Set叢集修改ip
{
"_id" : "szs",
"version" : 25,
"protocolVersion" : NumberLong(1),
"members" : [
{
"_id" : 2,
"host" : "192.168.17.101:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 3,
"host" : "192.168.17.100:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
..
...}
選擇想要修改的,記住順序。然後進行配置修改。cfg.members[1].host = "mongodb1.example.net:27017"rs.reconfig(cfg) 也可以採用rs.remove("ip:埠"),先移除之後,再進行rs.add(“ip:埠”)進行新增。 之後修改完分的後,執行rs.stepDown()。這個時候,主的開始變分的,可以rs.status() 檢視此時原來分的已經變為主了。此時即可重複之前步驟,一步一步修改想要修改的ip。 2.第二種方案,一次性全部配置。 首先第一步:關閉所有叢集中的mongo,修改叢集中的機器的ip。 第二步:所有叢集中的機器都以單機方式啟動,且埠與之前叢集啟動埠不同的埠形式啟動。 比如叢集方式啟動: mongodb/bin/mongod --fork --dbpath=/opt/work/mongodb/data/db --logpath=/opt/work/mongodb/data/log/MongoDB.log --logappend --journal --port=27017 --replSet szs 而這裡我們就以,27018埠啟動。 mongodb/bin/mongod --fork --dbpath=/opt/work/mongodb/data/db --logpath=/opt/work/mongodb/data/log/MongoDB.log --logappend --journal --port=27018 啟動之後,./mongo --port 27018進入本機的mongo操作頁面: use local cfg = db.system.replset.findOne( { "_id": "rs" } )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": "rs" } , cfg ) 第三步,所有修改完成之後,關閉所有對應mongo,以正常的叢集方式啟動。可以檢視是否修改完成。
可以參照官方文件:
https://docs.mongodb.com/manual/tutorial/change-hostnames-in-a-replica-set/