MongoDB3.6版本新特性

MongoDB3.6版新特性如下:

(1)Default Bind to Localhost

从3.6版本开始,在默认情况下,MongoDB二进制文件mongod和mongos绑定到localhost(127.0.0.0)上。如果在二进制文件中设置了--ipv6选项或者在配置文件中配置了net.ipv6,则默认会绑定到IPv6地址::1。

  • 绑定本地主机时,只接受来自同一台计算机上的客户端的连接,这里的客户端包括mongo Shell,集群成员。
  • 通过net.bindIp配置文件或者bind_ip命令行选项可以实现绑定到指定的IP地址列表。
  • bind_ip可以通过0.0.0.0来绑定所有,也可以设置bindIpAll为true值来绑定所有IP。

(2)Authentication Restrictions

从3.6版本开始,新增authenticaitonRestrictions参数用于将数据用户连接限制为指定的IP地址。

(3)Change Streams

  • 3.6版本支持使用副本集或分片使用Change Streams,必须时复制协议版本1,且WT存储引擎。
  • Change Streams允许应用程序实时了解数据的更改,可以实现一个发布订阅模式。
  • 使用Change Streams必须开启3.6版本特性参数featureCompatibilityVersion。

(4)Causal Consistency

保障数据一致性,需要客户端使用MongoDB driver 3.6,同时数据库开启featureCompatibilityVersion特性参数。

(5)Retryable Writes

  • 重试次数为1次。
  • 只有副本集和shard可用。
  • 数据库要求WT或in-memory存储引擎。
  • 客户端使用MongoDB driver 3.6,数据库开启featureCompatibilityVersion特性参数。
  • writeconcern必须配置,i.e{w:0}不可用。
  • 重试只能解决暂时的网络错误,不能解决持久的网络错误。
  • 驱动程序将等待serverSelectionTimeoutMS时间,以在重试之前确定新的主节点;可重试写入处理故障转移时间不会超过serverSelectionTimeoutMS(默认30s)。

(6)serverStatus

serverStatus新增logicalSessionRecordCache项。

一、复制集(Replica Sets)

  • 弃用副本集协议版本0(pv0)。
  • 添加replSetResizeOplog命令:动态调整副本集成员的oplog的大小。
  • 添加catchUpTakeoverDelayMillis配置选项:指定节点在发起选举之前等待的时间,默认为30秒。
  • 添加oplogInitialFindMaxSeconds参数:配置副本集的成员在数据同步期间其find命令等待多久,默认为60秒。
  • 添加waitForSecondaryBeforeNoopWriteMS参数:用以指定如果afterClusterTime大于oplog的最近应用时间,则Secondary服务器必须等待多久时间,默认为10毫秒。

二、分片集群(Sharded Clusters)

  • listdatebase
  • Read Concern

相关推荐