mongodb分片集群修改ip
背景
- 因为是恢复的镜像,服务器ip全变了,所以就需要修改ip了。
- 我分片集群构成:3个Config servers ;1个分片复制集(3个节点);1个路由
- 要注意开防火墙端口哦;后面就不在赘述了。
- 分片集群3个角色,修改顺序是
Config servers -> Shard -> Router
修改Config servers
ip
- 以
standlone
模式启动一个Config servers
,--dbpath
的值是我之前配置文件里db存储路径
/root/software/mongodb-linux-x86_64-rhel70-4.0.13/bin/mongod --port 37017 --dbpath /home/DB-DATA/mongo_config-0
- 到另外一个控制台中登录config节点
/root/software/mongodb-linux-x86_64-rhel70-4.0.13/bin/mongo --port 37017
use local
db.system.replset.find()
cfg = db.system.replset.findOne({_id: 'configs'})
cfg.members[0].host = "172.31.28.85:37017"
cfg.members[1].host = "172.31.28.85:37018"
cfg.members[2].host = "172.31.28.85:37019"
db.system.replset.update({_id: 'configs'}, cfg)
-
再查询看看是否修改成功
-
然后就是另外的
Config servers
节点了;依然是standlone模式启动,另一个控制台登录进去修改就行了。 -
最后启动全部
Config servers
节点,选举成功的
-
登录到Config servers
primary
节点,修改分片信息
/root/software/mongodb-linux-x86_64-rhel70-4.0.13/bin/mongo --port 37017 -u root -p xxx --authenticationDatabase "admin"
use config
cfg=db.shards.findOne({_id:'rs1'})
cfg.host="rs1/172.31.28.85:27017,172.31.17.101:27018,172.31.17.101:27019"
db.shards.update({_id:'rs1'},cfg)
修改shard
ip
- 依旧是standlone模式启动,然后登录进去
/root/software/mongodb-linux-x86_64-rhel70-4.0.13/bin/mongod --port 27017 --dbpath /home/DB-DATA/mongodb-0/
/root/software/mongodb-linux-x86_64-rhel70-4.0.13/bin/mongo --port 27017
- 修改
Config servers
配置信息
use admin
db.system.version.find()
db.system.version.update({"_id" : "shardIdentity"},{"$set":{"configsvrConnectionString" : "configs/172.31.28.85:37017,172.31.28.85:37018,172.31.28.85:37019"}})
- 修改
replica set
的配置信息, replica set的信息都保存在local数据库的system.replset集合中
use local
cfg = db.system.replset.findOne({_id: 'rs1'})
cfg.members[0].host="172.31.28.85:27017"
cfg.members[1].host="172.31.17.101:27018"
cfg.members[2].host="172.31.17.101:27019"
db.system.replset.update({_id:'rs1'},cfg)
- 依然还是和上面
Config servers
一样的对其他shard节点进行类似的操作 - 最后节点启动起来,看到主节点,一般就成功了
路由(router)节点
- 修改地址
- 启动路由,登录测试成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现