Mongodb2.8的版本升级(从2.4升级到2.8)

1       升级要求

升级到2.8版本前必须要先升级到2.6版本。一旦升级到2.8,如果想降级,只能降级到2.6.5,不能降到更低。2.8和2.6版本对用户安全性做了很大改进,如果用到需要单独升级和设置。

升级前请熟知Mongodb的系统部署步骤。具体步骤详见《Mongodb同机多实例部署教程》。

升级到2.6版本的过程和本文档描述的内容一样,只不过官方文档中在描述升级到2.6之前,还需要检查一下数据库状态:

即使用2.6的mongo shell连接2.4的mongos,执行 db.upgradeCheckAllDBs() 

2       升级准备

1、  备份configserver的数据,以免出现问题需要恢复

2、  如果已经启用balancer,则需要关闭balancer

3       升级过程

3.1 升级mongos

1、  首先启动mongos,升级元数据,即config数据。

在mongos节点上解压mongdb2.8版本,启动mongos,连接configserver,这里主要附带—upgrade选项:

mongos --configdb <configDBstring> --upgrade

一旦完成升级,mongos会自动退出。升级过程中有信息打印,如果旧系统中数据量十分庞大,升级过程会话费数分钟,可以注意打印信息。一旦升级完成,会输入如下信息:

upgrade of config server to v6 successful
Config database is at version v6

附:执行mongos的详细信息如下


                                     2.4升级到 2.6的信息

 

                  2.6 升级到 2.8的信息

2、重新启动mongos

完成升级后,重新启动mongos,看是否连接正常。注意:此时,无需附带—update选项。

3、升级其他mongos

如果还有mongos需要升级为2.8版本,需要逐一启动mongos,查看连接configserver是否正常。注意,这些mongos均不要附带—update选项。

3.2 升级mongod(configserver)

1、  关闭所有mongod,包括configserver

mongod --dbpath /var/mongod/data --shutdown

 

2、  替换成2.8版本,并启动mongod

官方文档特意给出提示:需要首先升级mongos,才能升级mongod。

WARNING

Do not upgrade mongod instancesuntil after you have upgraded all mongos instances.

另外注意替换2.8版本是仅仅替换可运行程序,千万不要把data目录覆盖掉。

4       更改存储引擎

Mongodb从2.8版本开始支持document level lock,但是需要启动mongod时显式指定存储引擎为wiredTiger。需要注意的是,如果使用wiredtiger,以前的数据并不兼容需要使用2.8版本的mongodump出来,然后启动mongod –storageEngine wiredtiger,再restore。具体操作步骤如下:

4.1 启动2.8版本mongod

确保2.8版本的mongod已经启动,默认使用的是MMAPv1存储引擎。

4.2 使用mongodump进行数据导出

mongodump --out <exportDataDestination>

mongodump也可以添加额外参数,请根据对应系统添加。

4.3 创建数据存储目录

注意该目录可以被用户“mongod”进行访问。

4.4 重启mongod同时带上wiredtiger参数

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>

4.5 导入数据

mongorestore <exportDataDestination>

5       降级

从2.8降级到2.6和升级过程一样。使用mongos –update后的输出信息如下:



有问题请联系我Professor Zhang:zhangtiey@gmail.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值