准备工作
1、确认已经安装需要运行的MongoDB版本
2、确保有足够的空间进行数据导出导入
3、您必须使用MongoDB版本3.0或更高版本才能使用WireldTiger存储引擎。 如果使用较早的MongoDB版本,则必须在继续更改存储引擎之前升 级MongoDB版本。本文使用的是MongoDB 3.6
4、本文使用docker来操作,请自行安装好docker环境。
5、直接在裸机安装MongoDB 3.6进行操作亦可。
6、这里演示从MongoDB 2.6备份出来的数据还原到MongoDB 3.6 并以WireldTiger引擎启动运行
步骤
1、启动你要运行的MongoDB版本,本文用的是3.6 ,Docker运行,配置文件写明要以wiredTiger 启动。
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的配置文件目录
$IPMongoDB #容器对外提供服务的IP地址
配置文件
2、把 MongoDB 2.6的备份数据解压到$OLD_DATA_PATH
3、进入MongoDB 3.6的容器中执行以下命令
docker exec -it $CONTAINER_NAME /bin/bash #进入docker并分配bash终端
mongorestore data2/ #从data2目录中导入备份数据
OK,接下来静候佳音即可。中间会有一段漫长的导入数据,转换引擎,重建索引的过程。
当然,你要是土豪,用固态硬盘也是极好的。
4、最后一步,查看一下数据引擎。运行db.serverStatus()命令,查询结果如下即可: