容器化后的mongoDB迁移

在这篇文章中简单介绍对容器化的单体mongoDB从2.6升级到3.4,并将存储引擎从MMAPv1转换成WiredTiger。

此处创建用于测试的mongoDB容器,容器化的mongoDB的文件挂载到本地的/mongodb.

docker run -d --name=mongo01 -p 27017:27017 -v /mongodb:/data/db mongo:2.6

为了升级mongoDB,并改变存储引擎,我们需要做:

  • mongodump导出数据
  • 备份mongoDB数据
  • 创建mongoDB3.4容器,该版本默认使用数据存储引擎WiredTiger
  • mongorestore数据到新版本的容器
    (NOTE: 只有在想要改变存储引擎时需要导入和导出数据,如果不需要改变存储引擎,只需要挂载数据路径即可)

(1)数据导出
创建临时的容器来保存导出的数据

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容器,创建新版本的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)导入数据到新版本的mongo容器

docke run -it --rm --link mongo01 -v /tmp/mongoexport:/tmp mongo:3.4 bash -c 'mongorestore -v --host mongo01:27017 /tmp'

当临时容器完成import以后,至此mongoDB3.4升级完毕。

你可能感兴趣的:(容器化后的mongoDB迁移)