Skip to content

MongoDB数据迁移

问题&目的

  • 问题:/data磁盘空间只剩4.9G;
  • 目的:将MongoDB的数据库文件全部移动到/storage分区;

解决方案(草稿)

1.ssh至Primary那台机器

ssh 10.251.164.59

2.登录至mongo shell

mongo 10.251.164.59:37005/xnn_core_product_2 -u core_product -p core_product

3.切换至admin用户

use admin db.auth('admin', '1qaz2wsx')

4.配置从节点无法升级为主节点

cfg = rs.conf() cfg.members[1].priority = 0 cfg.members[2].priority = 0 rs.reconfig(cfg)

5.关闭主节点

db.shutdownServer({force: true})

*6.备份磁盘分区(那块磁盘不支持快照。。。)

使用腾讯云磁盘快照

7.迁移mongodb数据至/storage分区

cp -rf /data/cshop_mongodb /storage

8.修改脚本、mongodb配置

cd /storage/cshop_mongodb vim mongodb-main.conf vim mongodb-main.start.sh vim mongodb-main.stop.sh

9.重新启动主节点

./mongodb-main.start.sh

10.连接主节点,配置从节点可升级为主节点

cfg = rs.conf() cfg.members[1].priority = 1 cfg.members[2].priority = 1 rs.reconfig(cfg)

故障预测:

1.假如数据拷贝过去之后主节点无法启动,怎么办? 删除刚刚拷贝的,再来一次试试

2.假如主节点就是起不来了,怎么办? 把从节点设为主节点;并且在连接mongo的代码里面,使用列表的形式传递所有节点IP、端口;