MongoDB 1.8 发行说明

在本页面

Upgrading

MongoDB 1.8 是一个标准的增量产品版本,可作为 MongoDB 1.6 的直接替代产品,但以下情况除外:

Preparation

在升级之前,请通读所有发行说明,并确保所有更改都不会影响您的部署。

升级独立的 mongod

升级副本集

1 .8.x secondaries **可以从 1.6.x primaries复制。

1 .6.x 辅助副本 无法 从 1.8.x 主副本复制。

因此,要升级replica set,您必须先替换所有辅助节点,然后替换主节点。

例如,假设您有一个副本集,其中包含一个主副本,一个arbiter和多个次副本。要升级该集,请执行以下操作:

当您开始关闭集合的成员时,可能会选择一个新的主要数据库。为避免这种情况,您可以在升级之前为所有辅助服务器设置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)
config = rs.conf()
config.version++
config.members[0].priority = 1
config.members[3].priority = 1
config.members[4].priority = 1
rs.reconfig(config)

升级分片群集

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

返回 1.6

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

Journaling

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

Changes

Journaling

MongoDB 现在支持预写Journaling,以促进快速崩溃恢复和存储引擎的持久性。启用日记功能后,mongod可以在崩溃后快速重新启动,而无需修复collections。聚合框架使聚合成为可能

稀疏索引和涵盖索引

Sparse Indexes是仅包含包含索引中指定字段的文档的索引。缺少该字段的文档将根本不会出现在索引中。这可以显着减小collection内仅包含文档子集的字段的索引的索引大小。

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

增量 MapReduce 支持

mapReduce命令支持新选项,这些选项可用于增量更新现有的collections。以前,MapReduce 作业可以输出到临时集合或命名的永久集合,然后将其用新数据覆盖。

现在,您可以使用几个选项来输出 MapReduce 作业:

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

其他更改和增强功能

1.8.1

1.8.0

1.7.6

1.7.5

1.7.4

1.7.3

1.7.2

1.7.1

1.7.0

发布公告论坛页面

Resources

首页