MongoDB 1.7.x版本有哪些新特性

这期内容当中小编将会给大家带来有关MongoDB 1.7.x版本有哪些新特性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

  MongoDB官方博客最近发表文章,对1.7.4版本中关于replicasets的五个重要新特性做了一个介绍,这些特性会继续在1.8.x版本中存在并持续改进。

  MongoDB1.7.x版本有哪些新的特性

  1.从一个secondary结点初始化新结点(Initialsyncfromasecondary)

  可以在新启动的replicasets结点上设置initialSync选项来指定从某个secondary结点获取初始化数据。如下:

  >rs.add({"_id":num,"host":hostname,"initialSync":{"state":2}})

  在initialSync选项中是一个筛选条件,你可以选择从哪个角色的机器上获取初始化数据(primaryorsecondary),也可以直接指定_id,hostname或者从数据最新的节点。如果指定的是从数据最新的结点上获取初始化化数据,你可以指定一个日期或者时间戳,这时候新加入的结点会选择一个比你设定的时间点数据更新的结点获取数据。

  新加入的结点认是从某个secondary结点获取初始化数据,只有在找不到这样的结点时,才会从primary结点上获取数据。如果他找到了某个secondary机器,那么他只会从他获取初始化需要的数据,一旦他的数据与这个secondary机器同步了,他就会切换到从primary节点上获取新的更新操作。

  2.从机延迟时间配置(slavedelay选项)

  这个slavedelay选项之前在master-slave模式的replication里支持,主要用于配置一个较长的时间以防止一些人为的错误。比如设定这个时间为86400,则同步操作只会同步超过一天前的数据,同步操作一直在,并非一天只同步一次(感谢ElmerZhang同学的留言提醒)。而现在replicasets也支持它了,使用方式:

  >rs.add({"_id":num,"host":hostname,"slaveDelay":3600})

  MongoDB1.7.x版本有哪些新的特性

  3.隐藏节点(hiddennode)

  隐藏节点的描述很简单,就是这个节点是隐藏的不可为客户端所见。配置方式:

  >rs.add({"_id":num,"host":hostname,"priority":0,"hidden":true})

  4.结点冻结(Freezeamember)

  replicasets的一个特点就是自动故障转移,也就是说在一台primary机器故障后,其他的secondary机器会尽快地选出一台新的主机。但是在我们进行某些维护操作时,会希望某段时间内不要让失去primary连接的secondary机器晋升为primary,而是等待一段时间再进行选举工作。这个操作就被称为结点冻结操作,具体操作方式如下:

  >rs.freeze(3600)

  解冻方式:

  >rs.freeze(0)

  5.快速同步(Fastsync)

  在过去,启动一个新节点时只能从primary节点获取新的数据,而上面第一条特性允许从secondary节点获取初始化数据。但是无论如何,全量数据的同步都会是一个比较慢的过程。Fastsync特性能够让新节点启动更加快速,Fastsync就是让新节点在启动时指定dbpath为一个过去备份好的数据文件目录,只要保证这个数据备份的时间还不长(不超过primary的最老的oplog),则就可以先通过已有的备份数据文件启动然后再从primary机器获取新的更新。

  查看最老的oplog的方法如下:

  >uselocal

  >newDate(db.oplog.rs.find().sort({$natural:1}).limit(1).next()["ts"]["t"])

  10gen的团队还列出了今后会加入的新特性如下:authentication,syncingfromsecondariesbeyondtheinitialsync,datacenterawareness,andmore.如果你希望加入其他一些什么功能你可以到Voteonthecasesyoucareabout去为你期待的功能投票。

上述就是小编为大家分享的MongoDB 1.7.x版本有哪些新特性了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程之家行业资讯频道。

相关文章

这篇文章主要介绍“hive和mysql的区别是什么”,在日常操作中...
这篇“MySQL数据库如何改名”文章的知识点大部分人都不太理解...
这篇文章主要介绍“mysql版本查询命令是什么”的相关知识,小...
本篇内容介绍了“mysql怎么修改字段的内容”的有关知识,在实...
这篇文章主要讲解了“mysql怎么删除unique约束”,文中的讲解...
今天小编给大家分享一下mysql怎么查询不为空的字段的相关知识...