mongodb数据迁移
- 2016-05 by WangJunlin
一个三节点的mongodb副本集,因业务增涨、存储空间不足,mongodb所在主机增加第二个硬盘,需要将mongodb数据路径迁移到第二个硬盘。
为降低风险,首先对现有数据进行备份。
确认节点主从状态
查看副本集各节点主从状态,先进行slave节点迁移,完成后再迁移主节点。
rs.status()
迁移slave节点
-
首先在关闭处于slave状态的node1和node3
use admin db.shutdownServer() # 或者 /etc/init.d/mongd stop
-
迁移目录
mv /var/lib/mongo /data/
- 修改配置/etc/mongodb.conf
#dbpath =/var/lib/mongodb dbpath=/data/mongodb
-
重启服务
/etc/init.d/mongd start
- 检查同步状态
rs.status() use mydb db.printSlaveReplicationInfo() db.printReplicationInfo()
迁移主节点
在node1上操作,先将节点从主节点下线,再关闭服务进行数据迁移。
-
切换主从状态
rs.stepDown()
- 按照slave节点迁移方法,完成数据目录切换,并重新开启服务。
- 检查节点同步状态。
原主节点恢复
在新的主节点上执行rs.stepDown()将其切换为slave,直到node2重新被选举为主节点。