从mongodb2.6升级到3.0中遇到的一些问题

3.0有双引擎,添加了WiredTiger 引擎,提供了document级的锁,以前的版本只支持collection级别的锁,锁粒度小了。3.0听说对硬盘的需求也小了不少。mongodb简 直就是硬盘怪兽啊。官方上有2.6升3.0的文档,地址:http://docs.mongodb.org/v3.0/release-notes /3.0-upgrade/ 

升 级完后。发现了点蛋疼的问题。首先是怎么把引擎切换到wiredTiger。以前的配置文件用key = value的样式,而3.0是可以支持yaml方式的。使用wiredTiger可以在启动时加上命令行参数:--storageEngine wiredTiger。或者在配置文件中设置:

storage:
    engine: wiredTiger


数据库切换完成后,发现数据没了,还好vps上有相同结构的数据库。。原来最好是备份一下。那也方便。用mongodump 做备份,再用

mongorestore 做还原。

看了下面这面这MongoDB兼容表,我把pymongo 2.7删除了,安装了2.8(用easy_install安装的,在pypi上好像没3.0版的,我只找到2.8)。。但是安装后发生了好多事。

从mongodb2.6升级到3.0中遇到的一些问题_第1张图片

安 装后,出现了个ImportError: No module named py3compat异常。后来研究了一下才发现,需要 把bson先删除,因为pymongo已经带了bson了。但是用pip没删干净。后来我import bson,根据bson.__file__显示的路径把bson删除。后来才好了。。。

后来发现 motor又出错了。原来也需要升级了,motor表如下

从mongodb2.6升级到3.0中遇到的一些问题_第2张图片


后来又类似的出现了gridfs的一个类无法加载,处理方法类似上面的。

到这里终于完成了整个的升级过程。


你可能感兴趣的:(从mongodb2.6升级到3.0中遇到的一些问题)