On this page
MongoDB 3.4 发行说明
在本页面
MongoDB 3.4 Released Nov 29, 2016
MongoDB 3.4 现在可用。关键功能包括线性化的阅读关注点,视图和排序规则。
还可以使用 OpsManager 3.4. 有关更多信息,请参见Ops Manager 文档和Ops Manager 发行说明。
Minor Releases
-
- [MMAP](release-notes-3.4-changelog.html#mmap)
3.4.24-2020 年 1 月 27 日
Issues fixed:
SERVER-37772:平台支持:添加社区和企业 RHEL 8 x64
SERVER-37135:TLSVersionCounts 需要跟踪和报告 TLS 1.3
SERVER-36315:降级后,CSRS dist 锁定 Management 器不断尝试解锁锁定
SERVER-37846:如果提交了写入,则仲裁员可以满足 writeConcern
SERVER-38945:SSL 性能回归
SERVER-40355:包含大于节点数的_id 的 rs.config 将崩溃
SERVER-43151:在 value.cpp:1368 上的聚合 assert 中出错
SERVER-44050:“哈希”索引键路径中的数组未正确拒绝
WT-4956:处理不驱逐页面进行 40 亿次更新的情况
3.4.23-2019 年 9 月 16 日
Issues fixed:
SERVER-36394:当 autosplit = false 或 splitvector 返回的分割点太少时,mongos 应该重置块大小跟踪信息
SERVER-41829:findAndModify 会忽略不是对象的过滤器表达式
SERVER-42055:仅获取集合 IX 锁以写入 lastVote 文档
3.4.22-2019 年 8 月 6 日
Issues fixed:
SERVER-17010:减少基于文件的排序器中文件句柄的使用。
SERVER-38984:将 ID 附加到用户(CVE-2019-2386)。
SERVER-42089:平台支持:删除 Enterprise RHEL 6.7 zSeries
Note
已解决的问题包括解决以下常见漏洞和披露(CVE)的问题:
CVE-2019-2386(请参阅SERVER-38984)
CVE-2019-2389(请参阅SERVER-40563)
CVE-2019-2390(请参阅SERVER-42233)
3.4.21-2019 年 6 月 14 日
Issues fixed:
SERVER-39820:将 Client 端 IP 地址添加到成功的身份验证日志消息中
SERVER-41213:唯一的后台索引构建可能会产生不一致的密钥
SERVER-37765:平台支持:删除 Ubuntu 14.04
SERVER-37774:平台支持:删除企业 Ubuntu 16.04 PPCLE
WT-4615:在返回备份光标之前同步备份文件
3.4.20-2019 年 3 月 13 日
Issues fixed:
SERVER-39166:$ graphLookup 应该强制管道在分片群集中拆分
SERVER-39723:更改 listIndexes 命令的行为以显示进行中的索引构建
TOOLS-2158:mongodump 在 Windows 上失败,并显示“错误打开系统 CA 存储:拒绝访问。”
3.4.19-2019 年 1 月 28 日
Issues fixed:
SERVER-18985:setParameter 应该记录为 0 级
SERVER-22766:WiredTiger 节点的动态操作日志大小
SERVER-33469:使 syslog 日志行与 mongod 日志行一致
SERVER-37132:正则表达式的$ in 取反可能会错误地从缓存中进行计划,从而导致查询结果丢失
SERVER-37182:引用整个对象与$ arrayToObject 之后该对象的字段时的值不同
SERVER-37616:为测距仪实现可调整的批量大小
3.4.18-2018 年 11 月 7 日
Issues fixed:
SERVER-25175:listIndexes 不应包含进行中的背景索引
SERVER-35418:允许分别为传入和传出连接指定 CA。
SERVER-36944:创建 v:1 索引时,applyOps 不允许未知的字段名称。
SERVER-37058:使用数组中的数字字段名称更新可能导致验证失败。
3.4.17-2018 年 9 月 7 日
Issues fixed:
SERVER-33857由于与 Command :: redactForLogging()混淆而缺少日志编辑。
SERVER-34846如果排序规则不包含在匹配或排序中,则带有排序规则字段的覆盖索引将返回错误的结果。
SERVER-36010将 Windows 堆栈跟踪的日志消息更改为使用 error()或 strict()而不是 log()。
SERVER-34558:将 SSL_version 添加到 Client 端元数据日志记录。
3.4.16-2018 年 7 月 10 日
Issues fixed:
SERVER-32999:平台支持:删除 Debian 7 版本。
SERVER-29301:将 MozJS 升级到 ESR 45.9.0
SERVER-5461:将
syncSourceHost
字段添加到replSetGetStatus
输出。
3.4.15-2018 年 5 月 16 日
Issues fixed:
SERVER-31535:平台支持:删除 Ubuntu 12.04 版本。
SERVER-32923:平台支持:删除 SLES11 版本。
SERVER-20056:如果 wiredTigerCacheSizeGB 大于 RAM 的 80%,则记录启动警告。
SERVER-28981:分片平衡器在移动块时更喜欢按特定 Sequences 分片。
3.4.14-2018 年 3 月 20 日
Issues fixed:
SERVER-28151:在初始同步期间,应首先同步身份验证数据库。
SERVER-32886:块迁移期间不必要的睡眠。
SERVER-32933:当无法访问 LDAP 服务器时,允许
mongod
启动。
3.4.13-2018 年 2 月 10 日
Issues fixed:
SERVER-33238:防止 WiredTiger 读取票证计数变为负数。
3.4.12-2018 年 2 月 8 日
Issues fixed:
SERVER-31437:修复了
mongo host/db
连接字符串的解析。SERVER-32875:不要因为门票用完而停止 ftdc。
SERVER-33089:无法启动可查询 mongod,因为它无法重新生成
admin.system.users
的索引。
3.4.11-2018 年 1 月 31 日
Issues fixed:
SERVER-19605:Oplog 超时应该是可配置的。
SERVER-19919:超过 250000 个文档但块大小不到一半的块将被标记为巨型。
SERVER-29293:收件人分片在降级时无法中止迁移。
SERVER-32001:对部分唯一索引中的键取消索引可能会导致服务器崩溃
3.4.10-2017 年 10 月 31 日
Issues fixed:
SERVER-15723:避免为数据库内的 rename_collection 锁定 G_X
SERVER-31049:带有分页的视图在分片群集中无法正常工作
SERVER-29287:将 pcre 升级到 8.41
SERVER-31204:如果对不同的 mongos 执行,则在 enableSharding 之后调用 shardCollection 可能会失败
3.4.9-2017 年 9 月 11 日
Issues fixed:
SERVER-20392:对现有的小型集合进行分片会导致大量块
SERVER-30189:减少大型$ in 表达式对分配器的调用
SERVER-30487:RangeDeleter 在 await 多数事务的同时保持 WT 事务打开
SERVER-30636:由于复制滞后,范围删除器 assert 失败
3.4.7 – 2017 年 8 月 8 日
Issues fixed:
SERVER-29282:在 SECONDARY 节点上插入分组时,可能会超出 BSON 文档大小
SERVER-29568:通过setParameter启用 OpenSSL 密码套件的配置
SERVER-29817:优化 ChunkManager 和 CollectionMetadata 的增量更新性能
3.4.6 – 2017 年 7 月 5 日
Issues fixed:
SERVER-27347:仅关闭繁忙的 WiredTiger 标识上的空闲缓存的游标。
$lookup
和$unwind
之后的聚合管道中的SERVER-29618:$geoWithin
返回错误的结果。WT-3362:在检查点期间,游标打开永远不会阻塞。
3.4.5 – 2017 年 6 月 14 日
Issues fixed:
SERVER-28952:如果唯一键是数组组件,则多键索引不符合 DISTINCT_SCAN 的条件。
SERVER-28427:具有超时的 GlobalLock 仍可以无限期阻止。
SERVER-29018 mongos可以在 find_batchSize 为 0 的视图上对
getMore
进行段错误处理。
3.4.4 – 2017 年 4 月 21 日
Issues fixed:
SERVER-18794:添加聚合运算符$objectToArray,以将对象转换为键,值对的数组。
SERVER-23310:添加聚合运算符$arrayToObject,以将成对的数组转换为对象。
SERVER-22611:ChunkManager 刷新有时可能会导致完全重新加载。
3.4.3 – 2017 年 3 月 28 日
Issues fixed:
SERVER-27863:重新安排 NetworkInterfaceASIO 中的早期警报触发,以避免mongos崩溃。
SERVER-28017:$ne应该遵守集合的默认排序规则。
SERVER-27700:当缓存已满时,提高辅助节点上的 WiredTiger 性能。
3.4.2 – 2017 年 2 月 1 日
Issues fixed:
SERVER-27125:如果 pv1 中的仲裁员可以看到与候选人同等或更高优先级的健康初选,则应在选举中不投票。
SERVER-27584将对过滤器的支持添加到 listDatabases
WT-2670读取完整的 DB 时 I/O 效率低(预读不良)
3.4.1 – 2016 年 12 月 20 日
Issues fixed:
SERVER-27124:禁止
readConcern: majority
读取副本集协议版本 0(pv0)。SERVER-27201:$ graphLookup 触发空指针取消引用。
SERVER-27207:通过
mongos
对视图进行排序的查找操作可能会错误地返回空结果集。SERVER-27213:两个
$match
流水线阶段可能会错误组合以产生错误结果。
Sharded Cluster
Membership Awareness
从 3.4 开始,分片群集组件(分片,配置服务器,mongos实例)可以识别它们在分片群集中的成员身份,包括分片群集的名称,配置服务器的位置。
为了支持这种意识:
-
shardsvr
要求对于 3.4 分片群集,必须通过配置文件设置sharding.clusterRole或通过命令行选项--shardsvr,将**的mongod个实例显式指定为
shardsvr
。
Config Server Primary 上的 Balancer
平衡器进程已从mongos移到配置服务器副本集的主要成员。与此更改相关联:
CSRS 配置服务器的主服务器使用名为
"ConfigServer"
的进程 ID 持有"balancer"
锁,该锁永远不会释放。MongoDB 3.4 添加了:
balancerStart命令并更新 3.4 mongo shell 方法sh.startBalancer()以包装新命令。 3.2 或更早版本的mongo Shell 方法sh.startBalancer()与 3.4 分片群集不兼容。
balancerStop命令并更新 3.4 mongo shell 方法sh.stopBalancer()以包装新命令。 3.2 或更早版本的mongo Shell 方法sh.stopBalancer()与 3.4 分片群集不兼容。
balancerStatus command.
MongoDB 3.4 不赞成mongo shell 方法sh.getBalancerHost()。 3.2 或更早版本的mongo Shell 方法sh.getBalancerHost()与 3.4 分片群集不兼容。
MongoDB 3.4 从mongos中删除了以下配置选项:
sharding.chunkSize
配置文件设置和--chunkSize
命令行选项sharding.autoSplit
配置文件设置和--noAutoSplit
命令行选项
Faster Balancing
从 MongoDB 3.4 开始:
对于WiredTiger,所有块迁移的默认值
secondaryThrottle
为false
。平衡器不 await 复制到辅助节点,而是 continue 下一个文档。MongoDB 可以执行并行块迁移。与早期版本类似,分片一次最多可以参与一个迁移。遵守此限制,对于具有* n 个分片的分片集群,MongoDB 最多可以同时执行 n/2 *(向下舍入)的块迁移。
取消对 SCCC Config 服务器的支持
3 .4 分片群集不再支持将镜像(SCCC)mongod实例用作配置服务器。 3.2 版本中弃用的 SCCC 配置服务器的使用不再有效。而是将您的配置服务器部署为副本集(CSRS)。
要将分片群集升级到版本 3.4,配置服务器必须作为副本集运行。
要将现有的配置服务器从 SCCC 转换为 CSRS,请参见将配置服务器升级到副本集。
Sharding Zones
MongoDB 3.4 引入了Zones,它取代了早期版本中可用的标记感知分片。
为了支持区域,MongoDB 引入了以下命令和mongo Shell 帮助器:
Commands | mongo Shell 方法 |
---|---|
addShardToZone | sh.addShardToZone() |
removeShardFromZone | sh.removeShardFromZone() |
updateZoneKeyRange | sh.updateZoneKeyRange() |
sh.removeRangeFromZone() |
Replica Set
多数写问题的默认日记记录行为
新的副本集配置设置writeConcernMajorityJournalDefault确定是否在大多数投票成员将写操作应用于内存或磁盘日志上后,是否返回对majority写关注的确认**如果在写关注中未指定j选项。
新当选小学的可调追赶期
新的副本集配置设置settings.catchUpTimeoutMillis定义了新当选的主副本赶上可能具有更近期写入操作的其他副本集成员的时间限制。
可线性化的读取问题
MongoDB 3.4 引入了读取关注级别"linearizable"来读取数据,该数据反映了在读取操作开始之前以"majority" 和发出的所有成功写入。可线性化的读取关注保证仅在读取操作指定唯一标识单个文档的查询过滤器时适用。
可线性化的读取关注点可用于所有受 MongoDB 支持的storage engines。
结合"majority"写入关注点和"linearizable"读取关注点,可使多个线程对单个文档执行读写操作,就好像单个线程实时执行了这些操作一样;也就是说,这些读写的相应计划被认为是线性的。
具有线性化读取关注点的读取可能比具有"majority"或"local"读取关注点的读取慢得多。万一大部分数据承载成员不可用,请始终使用maxTimeMS
并具有可线性化的读取注意事项。例如:
db.restaurants.find( { _id: 5 } ).readConcern("linearizable").maxTimeMS(10000)
db.runCommand( {
find: "restaurants",
filter: { _id: 5 },
readConcern: { level: "linearizable" },
maxTimeMS: 10000
} )
有关阅读关注的更多信息,包括支持阅读关注的操作,请参阅Read Concern。
改进了初始同步
MongoDB 3.4 通过在复制文档时构建初始同步来构建索引,从而提高了initial sync的性能。
MongoDB 3.4 改进了初始同步重试逻辑,以更灵活地应对网络上的间歇性故障。
为了避免潜在的数据损坏,如果在初始同步期间在同步源上重命名了集合,则 MongoDB 3.4 将失败并重新启动initial sync。使用 MongoDB 3.2.11 或更早版本,初始同步不会失败并重新启动,而是 continue 执行此过程,这可能导致潜在的数据损坏。
有关详细信息,请参见初始同步和 renameCollection。
- 修改后的replSetGetStatus命令接受命令中的可选
initialSync: 1
,以报告初始同步状态和进度(如果在辅助数据库上运行):
db.adminCommand( { replSetGetStatus: 1, initialSync: 1 } )
Decimal Type
3 .4 使用新的decimal
数据类型添加了对decimal128 format的支持。十进制 128 格式支持最多 34 个十进制数字(即有效数字)和-6143 至 6144 的指数范围的数字。
为了支持该格式,mongo shell 添加了NumberDecimal包装器。
db.inventory.insert( {_id: 1, item: "The Scream", price: NumberDecimal("9.99"), quantity: 4 } )
在不同数值类型之间执行comparisons时,MongoDB 会对确切存储的数值进行比较,而无需先将值转换为通用类型。
与仅存储近似十进制值的double
数据类型不同,decimal
数据类型存储精确值。例如,decimal
NumberDecimal("9.99")
的精确值为9.99
,其中双精度9.99
的近似值为9.9900000000000002131628...
。
要测试decimal
类型,请使用带有 Literals"decimal"
或19
的$type运算符。
db.inventory.find( { price: { $type: "decimal" } } )
要将新的decimal
数据类型与 MongoDB 驱动程序一起使用,必须升级到支持该功能的驱动程序版本。
Aggregation
递归搜索的新聚合阶段
3 .4 为aggregation pipeline引入了一个阶段,该阶段允许进行递归搜索。
Stage | Description |
---|---|
$graphLookup | 对集合执行递归搜索。在每个输出文档中,添加一个新的数组字段,其中包含对该文档的递归搜索的遍历结果。 |
See also
多面搜索的新汇总阶段
分面搜索允许将文档分类为分类。例如,给定一个清单文件集合,您可能希望按单个类别(例如,价格范围)或多个类别(例如,价格范围)以及部门分别对项目进行分类。
3 .4 为aggregation pipeline引入了可进行多面搜索的阶段。
Stage | Description |
---|---|
$bucket | 将传入文档分类或分组为代表指定表达式值范围的存储桶。 |
$bucketAuto | 将传入文档分类或分组为代表指定表达式值范围的指定数量的存储桶。 MongoDB 自动确定存储桶边界。 |
$facet | 处理 Importing 文档中的多个pipelines并输出包含这些管道结果的文档。通过在这些管道中指定与构面相关的阶段($bucket,$bucketAuto和$sortByCount),$facet允许进行多面搜索。 |
$sortByCount | 按指定的表达式对传入文档进行分类或分组,以计算每个组的计数。输出文档按计数降序排列。 |
新的汇总阶段,以方便重塑文档
3 .4 向aggregation pipeline引入了一些阶段,以方便替换文档以及添加新字段。
Stage | Description |
---|---|
$addFields | 将新字段添加到文档。该阶段输出包含 Importing 文档中所有现有字段以及新添加的字段的文档。 |
$replaceRoot | 用指定的文档替换文档。您可以指定 Importing 文档中嵌入的文档,以将嵌入的文档提升到顶层。 |
要计算的新汇总阶段
3 .4 为aggregation pipeline引入了一个新的阶段,可以方便计数文件。
Stage | Description |
---|---|
$count | 返回一个文档,其中包含 Importing 到阶段的文档数量的计数。 |
新的聚合阵列运算符
Operator | Description |
---|---|
$in | 返回一个布尔值,该值指示指定的值是否在数组中。 |
$indexOfArray | 在数组中搜索指定值的出现,并返回第一个出现的数组索引(从零开始)。 |
$range | 返回一个数组,其元素是生成的数字序列。 |
$reverseArray | 返回一个输出数组,其元素与 Importing 数组的元素相反,但 Sequences 相反。 |
$reduce | 将数组作为 Importing,并将表达式应用于数组中的每个元素,以返回表达式的最终结果。 |
$zip | 返回一个输出数组,其中每个元素本身就是一个数组,由 Importing 数组中相应数组索引位置中的元素组成。 |
新的聚合字符串运算符
Operator | Description |
---|---|
$indexOfBytes | 在字符串中搜索子字符串的出现,并返回第一次出现的 UTF-8 字节索引(从零开始)。 |
$indexOfCP | 在字符串中搜索子字符串的出现,并返回第一次出现的 UTF-8 code point索引(从零开始)。 |
$split | 通过指定的定界符将字符串拆分为字符串成分,然后返回字符串成分的数组。 |
$strLenBytes | 返回字符串的 UTF-8 字节数。 |
$strLenCP | 返回字符串的 UTF-8 code points的数目。 |
$substrBytes | 返回字符串的子字符串。子字符串以字符串中指定长度的指定 UTF-8 字节索引(从零开始)处的字符开头。 |
$substrCP | 返回字符串的子字符串。子字符串以字符串中指定的 UTF-8 code point索引(从零开始)处的字符开头。 |
新的聚合控制流表达式
Operator | Description |
---|---|
$switch | 按 Sequences 评估指定分支的case 表达式,以进入第一个分支,case 表达式对其求值为true 。 |
新的日期汇总运算符
Operator | Description |
---|---|
$isoDayOfWeek | 返回 ISO 8601 工作日编号,范围从1 (星期一)到7 (星期日)。 |
$isoWeek | 返回 ISO 8601 周号,范围从1 到53 。星期编号从1 开始,其中包含该年的第一个星期四的星期(星期一至星期日)。 |
$isoWeekYear | 返回 ISO 8601 年号,其中年份从第 1 周的星期一(ISO 8601)开始,到最后一周的星期日(ISO 8601)结束。 |
新的监视汇总源
Operator | Description |
---|---|
$collStats | 返回有关集合或视图的统计信息。 |
新型运算符
Operator | Description |
---|---|
$type | 返回指定参数BSON Types的字符串。 |
Additional Changes
$project阶段在输出文档中添加了对字段排除的支持。以前,您只能在阶段中排除_id
字段。如果您指定排除一个或多个字段,
所有其他字段在输出文档中返回。
您不能指定新字段或包含其他字段。
排序规则和不区分大小写的索引
为了允许特定于语言的字符串比较规则,MongoDB 3.4 在其查询语言和索引中引入了collation。
以下操作支持排序规则:
有关详细信息,请参见Collation。
[1] | *(1,2)*某些索引类型不支持排序规则。有关详细信息,请参见排序规则和不支持的索引类型。 |
Views
MongoDB 3.4 添加了对从现有集合或其他视图创建只读视图的支持。为了指定或定义视图,MongoDB 3.4 引入了:
- 现有create命令的
viewOn
和pipeline
选项:
db.runCommand( { create: <view>, viewOn: <source>, pipeline: <pipeline> } )
或者为视图指定默认的collation:
db.runCommand( { create: <view>, viewOn: <source>, pipeline: <pipeline>, collation: <collation> } )
- 和一个相应的mongo shell 助手db.createView():
db.createView(<view>, <source>, <pipeline>, <collation>)
有关创建视图的更多信息,请参见Views。
Security Enhancement
过渡到身份验证
MongoDB 3.4 添加了对副本集和分片群集向内部身份验证的滚动过渡的支持。有关详细信息,请参见security.transitionToAuth设置和mongod和mongos的--transitionToAuth
命令行选项。
See also
用户角色更改
以下内置角色的特权不再适用于local
和config
数据库:
readAnyDatabase | 从 3.4 开始,要在local 数据库上提供read 特权,请在admin 数据库中创建一个用户,该用户在local 数据库中具有read角色。另请参见clusterManager和clusterMonitor角色以访问config 和local 数据库。 |
readWriteAnyDatabase | 从 3.4 开始,要在local 数据库上提供readWrite 特权,请在admin 数据库中创建一个用户,该用户在local 数据库中具有readWrite角色。另请参见clusterManager和clusterMonitor角色以访问config 和local 数据库。 |
userAdminAnyDatabase | |
dbAdminAnyDatabase | 从 3.4 开始,要在local 数据库上提供dbAdmin 特权,请在admin 数据库中创建一个用户,该用户在local 数据库中具有dbAdmin角色。另请参见clusterManager和clusterMonitor角色以访问config 和local 数据库。 |
相应地,以下内置角色包括对local
和config
数据库的其他读取和写入特权:
MongoDB Tools
mongoreplay
MongoDB 引入了mongoreplay,它是代替mongosniff的工作负载捕获和分析工具。您可以使用mongoreplay来检查和记录发送到 MongoDB 实例的命令,然后在以后将命令重播到另一台主机上。
mongoreplay适用于 Linux 和 macOS。
General Enhancements
MongoDB 3.4 包括以下增强功能:
在发行版中添加了
systemd
支持。diagnosticDataCollectionDirectorySizeMB默认大小从 100 兆字节增加到 200 兆字节。
降低了下限和WiredTiger 内部缓存的默认设置。 WiredTiger 存储引擎内部缓存和inMemory 存储引擎的最大内存大小都可以接受浮点值。
find(),aggregate(),listIndexes和listCollections操作返回每批最大 16 MB。
db.currentOp和database profiler报告所有 CRUD 操作的相同基本诊断信息,包括以下内容:
这些操作也包含在慢查询的日志 Logging(有关慢查询的日志的更多信息,请参见slowOpThresholdMs)。
mongo shell 为 JavaScript 函数添加了对javascript和javascriptWithScope类型的编组字段的支持。参见--disableJavaScriptProtection。
添加了对系统证书的支持。如果mongod实例出示由 os 信任的 CA 签名的证书,则mongo Shell 将连接而没有任何错误。以前,mongo Shell 退出时出现错误,无法验证证书。
添加了消息压缩支持,以支持副本集成员或分片群集之间的内部通信以及mongo shell 与mongod或mongos之间的通信。
请参阅配置net.compression.compressors设置以及mongod,mongos和mongo shell 的--networkMessageCompressors
选项。
- 将 SpiderMonkey JavaScript 引擎升级到 45.0.2 ESR。
Platform Support
MongoDB 3.4 引入了对 ARM64,PPC64LE 和 s390x 体系结构的支持。请参阅Supported Platforms以查看完整的平台支持列表。
MongoDB 3.4 删除了对 Red Hat Enterprise Linux 5 的支持。
对于支持 Ubuntu 16.04 POWER/PPC64LE 的 MongODB Enterprise 早期版本:
由于 Ubuntu 16.04 for POWER 的glibc
软件包的较早版本中存在锁定清除错误,因此在运行 MongoDB 之前,必须将glibc
软件包升级到至少glibc 2.23-0ubuntu5
。使用glibc
软件包的较旧版本的系统会由于随机内存损坏而导致数据库服务器崩溃和行为异常,并且不适合 MongoDB 的生产部署
以下总结了最新版本的 MongoDB 产品支持的体系结构:
Product | x86_64/amd64 | s390x | POWER8(小尾数) | ARMv8-A |
---|---|---|---|---|
MongoDB 3.4 | ✓ | 仅 MongoDB Enterprise | 仅 MongoDB Enterprise | ✓ |
BI Connector | ✓ | ✓ | ✓ | |
Compass | ✓ | |||
Spark Connector | ✓ | |||
Ops Manager | ✓ | |||
Automation Agent | ✓ | ✓ | ||
Monitoring Agent | ✓ | ✓ | ||
Backup Agent | ✓ | ✓ |
有关详细信息,请参阅产品的各个文档。
MongoDB 企业功能
Log Redaction
MongoDB Enterprise 添加了对日志编辑的支持,以与 MongoDB 的加密存储引擎结合使用。日志编辑可防止将潜在的敏感信息写入诊断日志;但是,由于缺少与日志事件相关的数据,因此对已编辑日志的诊断可能会更加困难。
要启用日志编辑,请参见security.redactClientLogData设置和mongod的--redactClientLogData选项。
LDAP Enhancements
LDAP Authorization
MongoDB Enterprise 支持使用轻型目录访问协议(LDAP)服务进行授权(即确定访问权限)通过以下身份验证机制之一进行身份验证的用户:
LDAP 代理验证。有关同时使用 LDAP 身份验证和授权的教程,请参见通过本机 LDAP 使用 Active Directory 对用户进行身份验证和授权。
Kerberos Authentication。有关使用 Kerberos 身份验证和 Active Directory 的教程,请参见使用 Kerberos 身份验证和 Active Directory 授权配置 MongoDB。
mongoldap
MongoDB Enterprise 提供了一个新工具mongoldap,用于针对正在运行的 LDAP 服务器或一组服务器测试您的 MongoDB LDAP 配置选项。配置与LDAP authentication相关的选项时,可以使用mongoldap以确保身份验证操作按预期进行。
通过 OS 库绑定
MongoDB 3.4 通过 os 库支持绑定到 LDAP 服务器。这使 Linux 和 Windows MongoDB 3.4 服务器可以使用 LDAP 服务器进行身份验证。
Linux MongoDB 部署 continue 通过saslauthd支持绑定。
影响兼容性的更改
某些更改可能会影响兼容性,并且可能需要用户采取措施。有关兼容性更改的详细列表,请参见MongoDB 3.4 中的兼容性更改。
Upgrade Procedures
如果您需要有关升级到 3.4 的指导,请MongoDB 提供主要版本升级服务以帮助确保平稳过渡而不会中断您的 MongoDB 应用程序。
Download
要下载 MongoDB 3.4,请转到MongoDB 下载中心
See also
3.4.0 中的已知问题
3.4.0 版本中的已知问题列表:
SERVER-27124:protocolVersion: 0无法正确支持"majority"阅读关注。
SERVER-27195:不支持对包含 BSON 类型
Symbol
的字段的文档使用排序规则(已弃用),这可能会导致未定义的行为。SERVER-27207:通过mongos排序在视图上查找可能会错误地返回空结果集。
如果时间倒退(例如,在时钟不可靠的系统上),则WT-3327:Checkpoints可能会挂起。 (已修复MongoDB 3.4.6。)