準(zhǔn)備工作
1喂走、確認(rèn)已經(jīng)安裝需要運(yùn)行的MongoDB版本
2践美、確保有足夠的空間進(jìn)行數(shù)據(jù)導(dǎo)出導(dǎo)入
3喊熟、您必須使用MongoDB版本3.0或更高版本才能使用WireldTiger存儲(chǔ)引擎膳音。 如果使用較早的MongoDB版本,則必須在繼續(xù)更改存儲(chǔ)引擎之前升 級(jí)MongoDB版本大审。本文使用的是MongoDB 3.6
4蘸际、本文使用docker來(lái)操作,請(qǐng)自行安裝好docker環(huán)境徒扶。
5粮彤、直接在裸機(jī)安裝MongoDB 3.6進(jìn)行操作亦可。
6姜骡、這里演示從MongoDB 2.6備份出來(lái)的數(shù)據(jù)還原到MongoDB 3.6 并以WireldTiger引擎啟動(dòng)運(yùn)行
步驟
1导坟、啟動(dòng)你要運(yùn)行的MongoDB版本,本文用的是3.6 溶浴,Docker運(yùn)行乍迄,配置文件寫明要以wiredTiger? 啟動(dòng)。
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
變量名作用說(shuō)明
$CONTAINER_NAME???? #自定義的容器名字
$DATA_PATH?????????? #容器在宿主機(jī)上的數(shù)據(jù)卷路徑
$OLD_DATA_PATH????? #待升級(jí)的老版本MongoDB備份數(shù)據(jù)
$CONFIG_PATH????? #新版MongoDB的配置文件目錄
$IPMongoDB??????????? #容器對(duì)外提供服務(wù)的IP地址
配置文件
?
2士败、把 MongoDB 2.6的備份數(shù)據(jù)解壓到$OLD_DATA_PATH
3闯两、進(jìn)入MongoDB 3.6的容器中執(zhí)行以下命令
docker exec -it $CONTAINER_NAME /bin/bash??????? #進(jìn)入docker并分配bash終端
mongorestore data2/? ? #從data2目錄中導(dǎo)入備份數(shù)據(jù)
OK,接下來(lái)靜候佳音即可谅将。中間會(huì)有一段漫長(zhǎng)的導(dǎo)入數(shù)據(jù)漾狼,轉(zhuǎn)換引擎,重建索引的過(guò)程饥臂。
當(dāng)然逊躁,你要是土豪,用固態(tài)硬盤也是極好的隅熙。
4稽煤、最后一步,查看一下數(shù)據(jù)引擎囚戚。運(yùn)行db.serverStatus()命令,查詢結(jié)果如下即可: