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