MongoDB备份数据引擎升级
准备工作
- 确认已经安装需要运行的MongoDB版本
- 确保有足够的空间进行数据导出导入
- 您必须使用MongoDB版本3.0或更高版本才能使用WireldTiger存储引擎。 如果使用较早的MongoDB版本,则必须在继续更改存储引擎之前升级MongoDB版本。本文使用的是MongoDB 3.6
- 本文使用docker来操作,请自行安装好docker环境。
- 直接在裸机安装MongoDB 3.6进行操作亦可。
- 这里演示从MongoDB 2.6备份出来的数据还原到MongoDB 3.6 并以WireldTiger引擎启动运行
步骤
1、启动你要运行的MongoDB版本,本文用的是3.6 ,Docker运行,配置文件写明要以wiredTiger
启动。
1 | docker run -d --name $CONTAINER_NAME -v $DATA_PATH:/data/db -v $OLD_DATA_PATH:/data2 -v /$CONFIG_PATH/mongod.conf:/etc/mongod.conf.orig -p $IP:27017:27017 mongo:3.6 |
变量名 | 作用说明 |
---|---|
$CONTAINER_NAME | 自定义的容器名字 |
$DATA_PATH | 容器在宿主机上的数据卷路径 |
$OLD_DATA_PATH | 待升级的老版本MongoDB备份数据 |
$CONFIG_PATH | 新版MongoDB的配置文件目录 |
$IP | MongoDB容器对外提供服务的IP地址 |
配置文件
1 | # Where and how to store data. |
2、把 MongoDB 2.6的备份数据解压到$OLD_DATA_PATH
3、进入MongoDB 3.6的容器中执行以下命令
1 | docker exec -it $CONTAINER_NAME /bin/bash #进入docker并分配bash终端 |
OK,接下来静候佳音即可。中间会有一段漫长的导入数据,转换引擎,重建索引的过程。
当然,你要是土豪,用固态硬盘也是极好的。
4、最后一步,查看一下数据引擎。运行db.serverStatus()命令,查询结果包含如下内容即可:
1 | "storageEngine" : { |