mongodb分片物理搬遷方案

dbs101發表於2022-03-06

mongodb分片架構的物理搬遷方案


mongodb分片整體遷移到另外一個叢集,常規做法使用加減節點方式,如果有長時間維護視窗,採用物理拷貝的方式也可以,操作相對容易。但是mongodb的有些配置資訊放在資料庫中,如果需要修改的話,需要先使用standaalone方式啟動,然後修改相關配置資訊後再啟動。


下面是相關的步驟:


1. 資料節點,修改mg.cnf,ip+port,

1.1 關閉replicaset和shard,以standalone方式重啟,修改兩個部分


mongo -u __system -p"$(tr -d '\011-\015\040' < $MONGODB_HOME/etc/mg.key)" --host $IP --port $PORT --authenticationDatabase local


--修改資料節點的ip地址+埠

use local

db.system.replset.find()

cfg = db.system.replset.findOne({ "_id": "mg_s2" })

cfg.members[0].host = "192.168.0.38:23092"

db.system.replset.update( { "_id": "mg_s2" } , cfg )


--修改資料節點連線配置節點的ip地址+埠

use admin

db.system.version.find()

 

db.system.version.update( { "_id" : "shardIdentity" }, { $set: { "configsvrConnectionString": "mg_c/192.168.0.39:6608" } }, { multi: true })

 

1.2 重啟mongodb資料節點


2. 修改配置節點,

1.1 關閉replicaset和shard,以standalone方式重啟,修改兩個部分

 

修改配置節點的ip地址+埠

use local

db.system.replset.find()

cfg = db.system.replset.findOne({ "_id": "mg_c" })

cfg.members[0].host = "192.168.0.38:6608"

db.system.replset.update( { "_id": "mg_c" } , cfg )


修改連線資料節點的ip地址+埠

use config

db.shards.update( { "_id" : "mg_s0" }, { $set: { "host": "mg_s0/192.168.0.39:6607" } }, { multi: true })

db.shards.update( { "_id" : "mg_s1" }, { $set: { "host": "mg_s1/192.168.0.38:6606" } }, { multi: true })

db.shards.update( { "_id" : "mg_s2" }, { $set: { "host": "mg_s2/192.168.0.39:6605" } }, { multi: true })

 

2.2 其他配置節點

刪除data目錄,

 

2.3 增加其他兩個配置節點同步

rs.add("192.168.0.38:23099")

rs.add("192.168.0.38:23103")

 

3. 修改路由節點

修改mg.cnf,修改配置節點的配置資訊ip+port,


4. 重啟路由節點,配置節點和資料節點。


5. 驗證。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25105315/viewspace-2865285/,如需轉載,請註明出處,否則將追究法律責任。

相關文章