2015年3月3号,MongoDB新版本3.0发布了,和以前版本相比,这次改动较大,主要有以下几个方面:

1. 引入了插件式的存储引擎架构,允许第三方根据实际项目的需要开发存储引擎,类似于MySql中的分层存储引擎架构。随同这种架构发布的新的存储引擎为WiredTiger,老的存储引擎更名为MMAPv1,也是目前默认的存储引擎。

WiredTiger存储引擎主要特点有:

(1)目前只支持64位的MongoDB。

(2)支持文档级别的锁,相当于MySql中的行级别锁,多个客户端能够同时修改同一个集合中的多个文档,相比以前版本,WiredTiger存储引擎带来了更细粒度的锁,因此MongoDB的并发性能得到了大大的提高。

(3)支持集合和索引的压缩存储,这样能减少存储的消耗而只需要较少的CPU开支。

2. 不同存储引擎对应的数据文件不能兼容,也就是说以前版本对应的数据文件不能直接被WiredTiger存储引擎所支持,如果要升级到3.0的WiredTiger存储引擎,必须先将版本升级到2.6,然后再升级到3.0,下面介绍一个单实例升级步骤:

Step1:下载最新的3.0版本的mongod二进制文件,取代2.6版本的二进制。

Step2:启动3.0版本的mongod进程,确保使用的是默认存储引擎MMAPv1。

Step3:利用mongodump导出数据文件。

Step4:创建新的数据目录为WiredTiger存储引擎。

Step5:重启mongod实例用WiredTiger存储引擎选项,如下:

mongod –storageEngine wiredTiger –dbpath ‘Step4创建的新目录’

Step6:使用mongorestore恢复数据文件。

关于mongodump,mongorestore命令的使用方法可以参考《大数据存储MongoDB实战指南》一书。

3. 默认的存储引擎MMAPv1在3.0版本中也有所改进,支持了集合级别的锁,相当于MySql中的表级别锁,以前版本都是数据库级别和全局实例级别的锁,锁的粒度有所降低。

4.复制集的也发生了一点改变,在3.0版本中,首先允许的成员最大数量增加了,可以达到50个;其次复制集中primary节点关闭时,复制集的行为也有所变化,在3.0版本中,复制集会终止耗时较长的操作,例如索引的构造,map-reduce作业等,复制集会等到有新的priamry节点选出后原来的primary节点才会关闭,而以前的版本只是简单的等待10秒,不管是否选出了新的primary节点,同时现在也可以指定参数secondaryCatchUpPeriodSecs值,明确指定等待多少秒。

5. 工具的改变,mongodump,mongorestore,mongoexport,mongoimport,mongofiles以及mongooplog工具必须连接到正在运行的mongod实例上进行操作,不能像以前版本那样直接通过—dbpath选项操作数据文件。

6. 本地连接权限的改变,本地连接只能创建第一个用户在admin数据库中,不像以前版本,本地连接没有权限限制,能在实例上做任何操作。同时db.addUser()命令被废弃了,用db.createUser()和db.updateUser()来代替。

 

MongoDB3.0新版本几点介绍的更多相关文章

  1. Apache Hadoop 3.0新版本介绍及未来发展方向

    过去十年,Apache Hadoop从无到有,从理论概念演变到如今支撑起若干全球最大的生产集群.接下来的十年,Hadoop将继续壮大,并发展支撑新一轮的更大规模.高效和稳定的集群. 我们此次将向大家全 ...

  2. Mongodb2.6升级到Mongodb3.0.2笔记

    PS:升级到3版本的Mongodb以后,drop集合是可以直接释放磁盘空间的 停止老版本Mongodb >use admin >db.shutdownServer(); 下载解压新版本Mo ...

  3. Eviews 8.0&9.0界面新功能介绍

    Eviews 8.0&9.0界面新功能介绍 本文其中一些是自己的整理,也有一些是经管之家论坛中一位热心.好学坛友的整理,其中只是简单介绍一下这两个新版本的部分特性,分享出来,有兴趣的看客可以一 ...

  4. 记录一次MongoDB3.0.6版本wiredtiger与MMAPv1引擎的写入耗时对比

    一.MongoDB3.0.x的版本特性(相对于MongoDB2.6及以下): 增加了wiredtiger引擎: 开源的存储引擎: 支持多核CPU.充分利用内存/芯片级别缓存(注:10月14日刚刚发布的 ...

  5. Mongodb3.0.6副本集+分片学习笔记

    一.使用问题记录 1. mongodb3.0.6使用mongostat参数 >./mongostat -h 127.0.0.1:27017 -u root -p 123456 /authenti ...

  6. MongoDB3.0新特性

    3月3日,MongoDB3.0终于发布了. 主要特点包括了对之前收购的WiredTiger存储引擎的支持,插件式存储引擎API,SCRAM-SHA-1认证机制,并改进了解释功能.此外,包含了自动化.备 ...

  7. 使用mongo-java-driver3.0.2.jar和mongodb3.0在java代码中的用户验证4

    以下是使用mongo-java-driver3.0.2.jar和mongodb3.0.4在java代码中的用户验证: ServerAddress sa = new ServerAddress(host ...

  8. mongodb3.0 db.addUser报错

    > db.addUser("ydkt","ydkt") --19T09:: E QUERY TypeError: Property 'addUser' o ...

  9. mongodb3.0 性能測试报告 一

    mongodb3.0 性能測试报告 一 mongodb3.0 性能測试报告 二 mongodb3.0 性能測试报告 三 測试环境: 服务器:X86 pcserver   共6台 cpu:  单颗8核 ...

随机推荐

  1. Java在处理大数据的时候一些小技巧

    Java在处理大数据的时候一些小技巧 发布时间:2013-05-09 00:00:00 来源:中国IT实验室 作者:佚名   关键字:Java 众所周知,java在处理数据量比较大的时候,加载到内存必 ...

  2. Windows10

    一.快速开机设置 我的电脑配置如图,装有VS2015 2010 OFFICE等常用开发工具,在线升级后开机速度并没有明显提升. 1.保证windows font cache service服务启动,3 ...

  3. unity3d的Texture2D与opencv的Mat之间的相互转换

    这里的opencv使用的是opencvsharp,它是c#语言对c++的opencv的一层封装,使得c#开发者可以更方便的使用opencv,而不必纠结于跨语言调用的问题. 因此,这里使用的opencv ...

  4. Mysql插入数据为何要加上" ` "(Esc下面那个按键符号)?

    资料上和以前学习的SQL语言,往数据库里面插入数据语句是这样的 INSERT INTO test_table (clo_1, col_2) VALUES("this is value of ...

  5. windows 下ssh 客户端

    今天用 xshell 和 bitvise ssh 在 windows 登录SSH ,发现 vi 一些中文内容的文件会出现乱码,配置无效,在网上找到一款不会中文乱码的SSH客户端 MobaXterm , ...

  6. ListView显示不同行以及数据重用

    Handling ListViews with Multiple Row Types When you start writing Android Apps it isn’t long before ...

  7. java导入excel时遇到的版本问题

    java中读取excel文件时对不同的版本提供了不同的读取方法,这就要求我们在读取excel文件时获取excel文件的版本信息从而通过不同的版本去使用不同的读取方式, 在WorkbookFactory ...

  8. <<Design Patterns>> Gang of Four

    One:Introduction: One-1:Before  delving into the  some twenty pattern designs, it's necessary for ME ...

  9. 转载:JAVA中关于set()和get()方法的理解及使用

    对于JAVA初学者来说,set和get这两个方法似乎已经很熟悉了,这两个方法是JAVA变成中的基本用法,也是出现频率相当高的两个方法. 为了让JAVA初学者能更好的理解这两个方法的使用和意义,今天笔者 ...

  10. 深入研究C语言 第一篇

    一. 研究过程 1.第一章:创建编译环境: 我们首先下载TC2.0,找到其中与编译连接相关的程序和文件: (1) 编译器:TCC.exe (2) 连接器:tllike.exe (3) 相关文件:c0s ...