在這篇文章中簡單介紹對容器化的單體mongoDB從2.6升級到3.4,并將存儲引擎從MMAPv1轉(zhuǎn)換成WiredTiger。
此處創(chuàng)建用于測試的mongoDB容器,容器化的mongoDB的文件掛載到本地的/mongodb.
docker run -d --name=mongo01 -p 27017:27017 -v /mongodb:/data/db mongo:2.6
為了升級mongoDB,并改變存儲引擎,我們需要做:
- mongodump導(dǎo)出數(shù)據(jù)
- 備份mongoDB數(shù)據(jù)
- 創(chuàng)建mongoDB3.4容器,該版本默認(rèn)使用數(shù)據(jù)存儲引擎WiredTiger
- mongorestore數(shù)據(jù)到新版本的容器
(NOTE: 只有在想要改變存儲引擎時需要導(dǎo)入和導(dǎo)出數(shù)據(jù),如果不需要改變存儲引擎,只需要掛載數(shù)據(jù)路徑即可)
(1)數(shù)據(jù)導(dǎo)出
創(chuàng)建臨時的容器來保存導(dǎo)出的數(shù)據(jù)
docker run -i --rm --link mongo01 -v /tmp/mongoexport:/tmp mongo:2.6 bash -c 'mongodump -v --host mongo01:27017 --out /tmp'
(2)升級mongo
刪除老版本的mongo容器,創(chuàng)建新版本的mongo容器
docker stop mongo01
docker rm mongo01
sudo mv /mongodb /mongodb-2-6-backup
docker run -d --name=mongo01 -p 27017:27017 -v /mongodb:/data/db mongo:3.4
(3)導(dǎo)入數(shù)據(jù)到新版本的mongo容器
docke run -it --rm --link mongo01 -v /tmp/mongoexport:/tmp mongo:3.4 bash -c 'mongorestore -v --host mongo01:27017 /tmp'
當(dāng)臨時容器完成import以后,至此mongoDB3.4升級完畢。