【mongoDB】mongoDB 修改分片集群组件地址
一、背景
image.png
mongos01(虚拟机) 192.168.1.101 20000
mongos02(虚拟机) 192.168.1.102 20000
mongos03 (虚拟机) 192.168.1.103 20000
configServer01(虚拟机) 192.168.1.101 20001
configServer02(虚拟机) 192.168.1.102 20001
configServer03 (虚拟机) 192.168.1.103 20001
shard01-1(物理机) 192.168.1.104 20002
shard01-2(物理机) 192.168.1.105 20002
arbitor01(虚拟机) 192.168.1.101 30002
shard02-1(物理机) 192.168.1.105 20003
shard02-2 (物理机) 192.168.1.104 20003
arbitor02(虚拟机) 192.168.1.102 30003
###################################################
shard03-1(物理机) 192.168.1.106 20004
shard03-2 (物理机) 192.168.1.107 20004
arbitor03(虚拟机) 192.168.1.103 30004
shard01 shard02 主从是公用物理机交叉部署,对磁盘的占用是双倍。
现在shard01 shard02 磁盘空间告急,紧急新增分片 shard03 ,均匀数据,但因数据较大,匀数据耗时较长,存在 数据还没匀玩,shard01 shard02 底层物理机就爆盘的风险!
shard03 底层两台物理机磁盘空间较大,考虑在匀数据的同时,将shard01 shard02 的从库shard01-2 shard02-2 分别迁移到 shard03-1 shard03-2 。
shard01-2(物理机) 192.168.1.106 20002
shard02-2(物理机) 192.168.1.107 20003
二、从库迁移操作
以为 shard01 的从库 shard01-2 迁移为例:
- 在 shard03-1 机器上安装、启动 shard01-2 mongo 进程
- 登录shard01-1 ,将 shard03-1 机器上 的 新的 shard01-2 从节点加入集群
- 将原 shard01-2 进程停掉
- 登录shard01-1 ,将原 shard01-2 节点从分片复制集中删除
- 待 shard01-1 和新的 shard01-2 同步完成,删除 原 shard01-2 机器上的 shard01-2 的数据库目录,释放磁盘空间
shard02 的从库 shard02-2 迁移为例同理。
相关操作:
# 将节点加入复制集
> use admin
> rs.add('192.168.1.106:20002')
# 将节点从复制集移除
> use admin
> rs.remove('192.168.1.105:20002')
# 停止mongod进程
$ /path/to/mongod --dbpath=/path/to/datadir --shutdown
mongoDB 分片集群,当后端分片的地址发生变化时,mongos 能自动感应后端分片的变化,可以通过 sh.status() 中显示查看,意味着无需人工介入修改,实现了自动路由。
三、 参考
mongoDB 3.4.10 更换集群IP
https://blog.csdn.net/lengchanguo/article/details/81482737
mongoDB 分片集群修改ip
https://blog.csdn.net/baidu_19473529/article/details/105966795
MongoDB最新4.2.7版本三分片集群修改IP实操演练
https://www.debugger.wiki/article/html/1597989241050787
mongoDB分片副本集-修改某个分片或某个config服务器的ip
https://blog.csdn.net/qq_39741836/article/details/106540370
各种MongoDB的启动和关闭方式
https://blog.csdn.net/qq_39741836/article/details/106519960