MongoDB 1.8的发布说明

升级

MongoDB 1.8是一个标准的增量生产版本,可以作为MongoDB 1.6的下拉式替代品,除了:

  • 副本集成员应按特定顺序升级,如升级复制集。
  • mapReduce命令在1.8中发生了变化,导致与之前的版本不兼容。mapReduce不再生成临时集合(因此,keepTemp已被删除)。现在,你必须始终提供价值。查看mapReduce文档中的out字段选项。如果您使用MapReduce,这也可能意味着您需要最新版本的客户端驱动程序。

准备

在升级之前,请仔细阅读所有发布说明,并确保没有更改会影响您的部署。

升级独立产品mongod

  1. 下载v1.8.x二进制文件MongoDB下载页面。
  2. 关闭您的mongod实例。
  3. 将现有的二进制文件替换为1.8.xmongod二进制文件。
  4. 重新启动MongoDB。

升级复制集

1.8.x次选可以从1.6.x初选复制

1.6.x次选无法从1.8.x初选复制。

因此,要升级副本集,您必须先替换所有次要文件,然后替换主服务器。

例如,假设您有一个带有主、仲裁器和几个次要副本集。要升级套装,请执行以下操作:

1、对于仲裁者:

​ a.关闭仲裁员。

​ b.使用1.8.x二进制文件重新启动它MongoDB下载页面。

2、更改您的配置(可选),以防止选择新的初选。

​ 当您开始关闭集合的成员时,可能会选出新的初选。为了防止这种情况,您可以在升级前将所有次要级别的优 先级为0,然后将其更改回来。为此,请按照以下步骤操作:

​ a.记录您当前的配置。运行rs.config()并将结果粘贴到文本文件中。

​ b.更新您的配置,以便所有次要的优先级0。例如:

config = rs.conf()
{
     "_id" : "foo",
     "version" : 3,
     "members" : [
             {
                     "_id" : 0,
                     "host" : "ubuntu:27017"
             },
             {
                     "_id" : 1,
                     "host" : "ubuntu:27018"
             },
             {
                     "_id" : 2,
                     "host" : "ubuntu:27019",
                     "arbiterOnly" : true
             }
             {
                     "_id" : 3,
                     "host" : "ubuntu:27020"
             },
             {
                     "_id" : 4,
                     "host" : "ubuntu:27021"
             },
     ]
}
config.version++
3
rs.isMaster()
{
     "setName" : "foo",
     "ismaster" : false,
     "secondary" : true,
     "hosts" : [
             "ubuntu:27017",
             "ubuntu:27018"
     ],
     "arbiters" : [
             "ubuntu:27019"
     ],
     "primary" : "ubuntu:27018",
     "ok" : 1
}
// for each secondary
config.members[0].priority = 0
config.members[3].priority = 0
config.members[4].priority = 0
rs.reconfig(config)

3、对于每个次要

​ a.关闭辅助

​ b.使用1.8.x二进制文件重新启动它MongoDB下载页面。

4、如果您更改了配置,请将其更改为原始状态:

config = rs.conf()
config.version++
config.members[0].priority = 1
config.members[3].priority = 1
config.members[4].priority = 1
rs.reconfig(config)

5、关闭主服务器(最终的1.6服务器),然后使用1.8.x二进制文件重新启动它MongoDB下载页面

升级分片集群

1、关闭平衡器:

mongo <a_mongos_hostname>
use config
db.settings.update({_id:"balancer"},{$set : {stopped:true}}, true)

2、对于每个分片:

3、对于每个mongos :

​ a.关闭mongos进程。

​ b.使用1.8.x二进制文件重新启动它MongoDB下载页面。

4、对于每个配置服务器:

​ a.关闭配置服务器进程。

​ b.使用1.8.x二进制文件重新启动它MongoDB下载页面。

5、打开平衡器:

use config
db.settings.update({_id:"balancer"},{$set : {stopped:false}})

返回1.6

如果出于任何原因,您必须返回1.6,请按照上面相反的步骤操作。请注意,在1.8上运行时,您没有插入任何大于4MB的文档(最大大小已增加到16MB)。如果您有,当服务器尝试读取这些文档时,您会收到错误。

日记

使用1.8日志后返回1.6可以正常工作,因为日志记录不会改变数据文件格式的任何内容。假设您在启用日志记录的情况下运行1.8.x,并决定切换回1.6。有两种情况:

  • 如果您使用1.8.x干净地关闭,只需使用1.6个mongod二进制文件重新启动即可。

  • 如果1.8.x不干净地关闭,请再次启动1.8.x,并让日志文件运行以修复崩溃时可能存在的任何损坏(写入不完整)。然后干净地关闭1.8.x,并使用1.6mongod二进制文件重新启动。

变化

日记

MongoDB现在支持提前写日记,以促进存储引擎的快速崩溃恢复和耐用性。启用日志记录后,可以在崩溃后快速重新启动mongod,而无需修复收藏品。聚合管道可以进行聚合。

稀疏和覆盖的索引

稀疏索引是仅包含包含索引中指定字段的文档的索引。缺少字段的文档将根本不会出现在索引中。这可以显著减少集合中仅包含文档子集的字段索引的索引大小。

当查询仅选择索引包含的字段时,覆盖的索引使MongoDB能够完全从索引中回答查询。

增量地图减少支持

mapReduce命令支持允许逐步更新现有集合的新选项。以前,MapReduce作业可以输出到临时集合或命名的永久集合,它会用新数据覆盖这些集合。

您现在有几个输出MapReduce作业的选项:

  • 您可以将MapReduce输出合并到现有集合中。如果已经存在,还原阶段的输出将替换输出集合中的现有密钥。其他密钥将保留在收藏中。
  • 您现在可以使用现有集合的内容重新减少输出。减少阶段的每个关键输出都将随着输出集合中的现有文档而减少。
  • 您可以将现有输出集合替换为MapReduce作业的新结果(相当于在之前的版本中设置永久输出集合)
  • 您可以内联计算MapReduce并将结果返回给调用者,而无需保留作业的结果。这与之前版本中生成的临时集合相似,但结果限制为8MB。

有关更多信息,请参阅mapReduce文档中的out字段选项。

其他更改和增强功能

1.8.1

  • 移动较大块时,分叉迁移修复。
  • 带有背景索引的耐用性修复。
  • 修复了许多传入连接的mongos并发问题。

1.8.0

  • 1.7.x系列的所有变化。

1.7.6

  • 错误修复。

1.7.5

1.7.4

1.7.3

1.7.2

  • $rename运算符允许重命名文档中的字段。
  • db.eval()不要阻止。
  • 带有分片的地理查询。
  • mongostat --discover选项
  • 块分割增强功能。
  • Replica为nat后面的服务器设置网络增强功能。

1.7.1

  • 许多分片性能增强。
  • 在嵌入式数组中的原语上更好地支持$elemMatch
  • 范围查询的查询优化器增强。
  • 窗口服务增强。
  • 复制集设置改进。
  • $pull处理数组中的原语。

1.7.0

  • 针对重插入负载的分层性能改进。
  • 复制集的从句延迟支持。
  • local.system.replset.settings.getLastErrorDefaults对于复制集。
  • 在外壳中自动完成。
  • 用于地理搜索的球面距离。
  • 1.6.1和1.6.2的所有修复。

发布公告论坛页面

资源

译者:韩鹏帅

参见

原文 - Release Notes for MongoDB 1.8

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""