mongodb3.0在mmapv1的存储引擎基础上添加了一个新的存储引擎
WiredTiger。但是3.0的默认存储引擎依旧是mmapv1,因此我们项目之前也就用的默认方式。
但是mongodb更新实在太快,转眼间,从3.0直接跳到3.2,默认的存储引擎也改成了WiredTiger。据说这个引擎具有占用磁盘空间更小,占用内存空间更小,查询效率更高等一系列特点。
为了防患于未然,今天尝试了一下把3.0的数据复制到3.2中。由于以前都是用mongovue直接复制,但是新的存储引擎,mongovue连表都打不开,根本无法读取数据,因此只好在mongo shell中操作。
其中成功的操作步骤大致如下:
1、
把mmapv1存储引擎存储的mongodb3.0.5数据库的数据使用mongodump的方式备份出来:
2、把数据以mongorestore的方式恢复到以
WiredTiger存储引擎存储的mongodb3.2.7中:
注:两个数据库都开启了用户验证,也都是以默认的存储引擎方式启动。不同的是,3.0.5中用户验证使用的是手动修改后的
MONGODB-CR验证方式,而3.2.7中则是SCRAM-SHA-1默认的方式。