现在的位置: 首页 > 数据库 > 正文

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

2020年07月01日 数据库 ⁄ 共 1866字 ⁄ 字号 评论关闭

  MongoDB官方博客最近发表文章,对1.7.4版本中关于ReplicaSets的五个重要新特性做了一个介绍,这些特性会继续在1.8.x版本中存在并持续改进。下面学步园小编来讲解下MongoDB1.7.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去为你期待的功能投票。

  以上就是关于“MongoDB1.7.x版本有哪些新的特性”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.