1. 程式人生 > >Mongodb叢集修改IP

Mongodb叢集修改IP

1 系統說明

       開源元件如下:

元件及版本

元件功能

引入原因

Mongodb3.6.2

提供高效能的檔案式資料儲存和檢索的分散式平臺

提供結構化模型資料的持久化和檢索功能

 

 

2 mongodb叢集修改IP

2.1 單副本集修改IP

2.1.1 修改配置檔案

1.修改primary.conf

vi ./config/primary.conf

紅框處改為新IP

 

2.修改secondary.conf

vi ./config/secondary.conf

紅框處改為新IP

 

3.修改arbiterOnly.conf

vi ./config/arbiterOnly.conf

 

紅框處改為新IP

4.關閉所有mongod服務

2.1.2 配置新副本集

1. 伺服器IP更換為新IP

 

2. 啟動副本集

./bin/mongod -f ./config/primary.conf

./bin/mongod -f ./config/secondary.conf

./bin/mongod -f ./config/arbiter.conf

3. 配置新副本集

./bin/mongo IP:27017   //IP為新IP

config = {

                         "members" : [

                         {"_id" : 1,"host" : "

新IP:27017"},

                         {"_id" : 2,"host" : "新IP:27018"},

                         {"_id" : 3,"host" : "新IP:27019","arbiterOnly" : true}

                         ]

           }

rs.reconfig(config, {force: true})

4. 退出shell,再次進入./bin/mongo IP:27017即可

2.2 叢集修改IP

現在需要將IP改為正式環境的IP,IP對應關係如下:

10.41.11.51-->10.41.11.31  //一個configsvr,一個mongos,一個分片副本集

10.41.11.52-->10.41.11.32  //一個configsvr,一個分片副本集

10.41.11.53-->10.41.11.33  //一個configsvr,一個分片副本集

 

2.2.1 修改服務配置資訊

1. 修改配置節點資訊

       修改副本集IP資訊

10.41.11.51上執行

       ./bin/mongo 10.41.11.51:20000

use local

cfg = db.system.replset.findOne({_id: 'configSvr'})

cfg.members[0].host = "10.41.11.31:20000"   //IP修改為10.41.11.31

cfg.members[1].host = "10.41.11.32:20000"   //IP修改為10.41.11.32

cfg.members[2].host = "10.41.11.33:20000"   //IP修改為10.41.11.33

 

db.system.replset.update({_id: 'configSvr'}, cfg)

 

副本集其他節點執行同樣操作

10.41.11.52上執行

./bin/mongo 10.41.11.52:20000

use local

       cfg = db.system.replset.findOne({_id: 'configSvr'})

cfg.members[0].host = "10.41.11.31:20000"   //IP修改為10.41.11.31

cfg.members[1].host = "10.41.11.32:20000"   //IP修改為10.41.11.32

cfg.members[2].host = "10.41.11.33:20000"   //IP修改為10.41.11.32

 

db.system.replset.update({_id: 'configSvr'}, cfg)

 

副本集其他節點執行同樣操作

10.41.11.53上執行

./bin/mongo 10.41.11.53:20000

use local

       cfg = db.system.replset.findOne({_id: 'configSvr'})

cfg.members[0].host = "10.41.11.31:20000"   //IP修改為10.41.11.31

cfg.members[1].host = "10.41.11.32:20000"   //IP修改為10.41.11.32

cfg.members[2].host = "10.41.11.33:20000"   //IP修改為10.41.11.32

 

db.system.replset.update({_id: 'configSvr'}, cfg)

 

修改分片資訊

./bin/mongo 10.41.11.51:20000 //PRIMARY節點啟動

use config

cfg=db.shards.findOne({_id:'shardn'})   //shardn為分片名

cfg.host="shardn/10.41.11.31:27017,10.41.11.31:27018"         //IP改為10.41.11.31

db.shards.update({_id:'shardn'},cfg)

 

cfg=db.shards.findOne({_id:'shard2'})  //shard2為分片名

cfg.host="shard2/10.41.11.32:27017,10.41.11.32:27018"  //IP改為10.41.11.32

db.shards.update({_id:'shard2'},cfg)

 

cfg=db.shards.findOne({_id:'shard3'})  //shard3為分片名

cfg.host="shard3/10.41.11.33:27017,10.41.11.33:27018"  //IP改為10.41.11.33

db.shards.update({_id:'shard3'},cfg)

 

2. 修改分片節點資訊

修改第一個分片,10.41.11.51上執行

./bin/mongo 10.41.11.51:27017  //登入primary節點

修改配置伺服器資訊

use admin

db.system.version.find()

db.system.version.update({"_id" : "shardIdentity"},{"$set":{"configsvrConnectionString" : "configSvr/10.41.11.31:20000,10.41.11.32:20000,10.41.11.33:20000"}})  //IP修改為10.41.11.31,10.41.11.32, 10.41.11.33

 

db.system.version.update({"_id" :"minOpTimeRecovery"},{"$set":{"configsvrConnectionString" : "configSvr/10.41.11.31:20000,10.41.11.32:20000,10.41.11.33:20000"}})  //如果find結果有"_id" :"minOpTimeRecovery",需要執行這行命令

 

修改副本集資訊

use local

cfg = db.system.replset.findOne({_id: 'shardn'})  //shardn為分片名

cfg.members[0].host="10.41.11.31:27017"    //IP修改為10.41.11.31

cfg.members[1].host="10.41.11.31:27018"    //IP修改為10.41.11.31

cfg.members[2].host="10.41.11.31:27019"    //IP修改為10.41.11.31

db.system.replset.update({_id:'shardn'},cfg)

 

./bin/mongo 10.41.11.51:27018  //登入secondary節點

use local

cfg = db.system.replset.findOne({_id: 'shardn'})  //shardn為分片名

cfg.members[0].host="10.41.11.31:27017"    //IP修改為10.41.11.31

cfg.members[1].host="10.41.11.31:27018"    //IP修改為10.41.11.31

cfg.members[2].host="10.41.11.31:27019"    //IP修改為10.41.11.31

db.system.replset.update({_id:'shardn'},cfg)

 

./bin/mongo 10.41.11.51:27019  //登入arbiter節點

use local

cfg = db.system.replset.findOne({_id: 'shardn'})  //shardn為分片名

cfg.members[0].host="10.41.11.31:27017"  //IP修改為10.41.11.31

cfg.members[1].host="10.41.11.31:27018"  //IP修改為10.41.11.31

cfg.members[2].host="10.41.11.31:27019"  //IP修改為10.41.11.31

db.system.replset.update({_id:'shardn'},cfg)

 

修改第二個分片,10.41.11.52上執行

./bin/mongo 10.41.11.52:27017  //登入primary節點

修改配置伺服器資訊

use admin

db.system.version.find()

db.system.version.update({"_id" : "shardIdentity"},{"$set":{"configsvrConnectionString" : "configSvr/10.41.11.31:20000,10.41.11.32:20000"}})  //IP修改為10.41.11.31,10.41.11.32

 

db.system.version.update({"_id" :"minOpTimeRecovery"},{"$set":{"configsvrConnectionString" : "configSvr/10.41.11.31:20000,10.41.11.32:20000"}})  //如果find結果有"_id" :"minOpTimeRecovery",需要執行這行命令

 

修改副本集資訊

use local

cfg = db.system.replset.findOne({_id: 'shard2'})  //shard2為分片名

cfg.members[0].host="10.41.11.32:27017"  //IP修改為10.41.11.32

cfg.members[1].host="10.41.11.32:27018"  //IP修改為10.41.11.32

cfg.members[2].host="10.41.11.32:27019"  //IP修改為10.41.11.32

db.system.replset.update({_id:'shard2'},cfg)

 

./bin/mongo 10.41.11.52:27018  //登入secondary節點

use local

cfg = db.system.replset.findOne({_id: 'shard2'}) //shard2為分片名

cfg.members[0].host="10.41.11.32:27017"  //IP修改為10.41.11.32

cfg.members[1].host="10.41.11.32:27018"  //IP修改為10.41.11.32

cfg.members[2].host="10.41.11.32:27019"  //IP修改為10.41.11.32

db.system.replset.update({_id:'shard2'},cfg)

 

./bin/mongo 10.41.11.52:27019  //登入arbiter節點

use local

cfg = db.system.replset.findOne({_id: 'shard2'}) //shard2為分片名

cfg.members[0].host="10.41.11.32:27017"  //IP修改為10.41.11.32

cfg.members[1].host="10.41.11.32:27018"  //IP修改為10.41.11.32

cfg.members[2].host="10.41.11.32:27019"  //IP修改為10.41.11.32

db.system.replset.update({_id:'shard2'},cfg)

 

修改第三個分片,10.41.11.53上執行

 

./bin/mongo 10.41.11.53:27017  //登入primary節點

修改配置伺服器資訊

use admin

db.system.version.find()

db.system.version.update({"_id" : "shardIdentity"},{"$set":{"configsvrConnectionString" : "configSvr/10.41.11.31:20000,10.41.11.32:20000,10.41.11.33:20000"}})  //IP修改為10.41.11.31,10.41.11.32, 10.41.11.33

 

db.system.version.update({"_id" :"minOpTimeRecovery"},{"$set":{"configsvrConnectionString" : "configSvr/10.41.11.31:20000,10.41.11.32:20000,10.41.11.33:20000"}})  //如果find結果有"_id" :"minOpTimeRecovery",需要執行這行命令

 

修改副本集資訊

use local

cfg = db.system.replset.findOne({_id: 'shard3'})  //shard3為分片名

cfg.members[0].host="10.41.11.33:27017"  //IP修改為10.41.11.33

cfg.members[1].host="10.41.11.33:27018"  //IP修改為10.41.11.33

cfg.members[2].host="10.41.11.33:27019"  //IP修改為10.41.11.33

db.system.replset.update({_id:'shard3'},cfg)

 

./bin/mongo 10.41.11.53:27018  //登入secondary節點

use local

cfg = db.system.replset.findOne({_id: 'shard3'}) //shard3為分片名

cfg.members[0].host="10.41.11.33:27017"  //IP修改為10.41.11.33

cfg.members[1].host="10.41.11.33:27018"  //IP修改為10.41.11.33

cfg.members[2].host="10.41.11.33:27019"  //IP修改為10.41.11.33

db.system.replset.update({_id:'shard3'},cfg)

 

./bin/mongo 10.41.11.53:27019  //登入arbiter節點

use local

cfg = db.system.replset.findOne({_id: 'shard3'}) //shard3為分片名

cfg.members[0].host="10.41.11.33:27017"  //IP修改為10.41.11.33

cfg.members[1].host="10.41.11.33:27018"  //IP修改為10.41.11.33

cfg.members[2].host="10.41.11.33:27019"  //IP修改為10.41.11.33

db.system.replset.update({_id:'shard3'},cfg)

2.2.2 修改配置檔案

10.41.11.51 上執行

killall mongod

killall mongos

vi config/primary.conf

紅框處為修改後的IP

vi config/secondary.conf

紅框處為修改後的IP

vi config/arbiter.conf

紅框處為修改後的IP

vi config/configsvr.conf

紅框處為修改後的IP

 

vi config/mongos.conf

紅框處為修改後的IP

 

10.41.11.52 上執行

killall mongod

killall mongos

vi config/primary.conf

紅框處為修改後的IP

vi config/secondary.conf

紅框處為修改後的IP

vi config/arbiter.conf

紅框處為修改後的IP

vi config/configsvr.conf

紅框處為修改後的IP

 

10.41.11.53 上執行

killall mongod

killall mongos

vi config/primary.conf

紅框處為修改後的IP

vi config/secondary.conf

紅框處為修改後的IP

vi config/arbiter.conf

紅框處為修改後的IP

vi config/configsvr.conf

紅框處為修改後的IP

 

更換伺服器IP

10.41.11.51 上執行

./bin/mongo config/configsvr.conf

10.41.11.52 上執行

./bin/mongo config/configsvr.conf

10.41.11.53 上執行

./bin/mongo config/configsvr.conf

10.41.11.51 上執行

./bin/mongo config/primary.conf

./bin/mongo config/secondary.conf

./bin/mongo config/arbiter.conf

./bin/mongo config/mongos.conf

10.41.11.52 上執行

./bin/mongo config/primary.conf

./bin/mongo config/secondary.conf

./bin/mongo config/arbiter.conf

./bin/mongo config/mongos.conf

10.41.11.53上執行

./bin/mongo config/primary.conf

./bin/mongo config/secondary.conf

./bin/mongo config/arbiter.conf

./bin/mongo config/mongos.conf

 

若全部能正常啟動,則修改成功