通过Yum更新MongoDB 2.6 to 3.0


     由于之前使用的是yum安装的MongoDB 2.6(根据官网提示,如果你准备从2.4升级起来,需要先行升级至2.6版本,再进行3.0的升级),为了使用MongoDB多个新特性,如WiredTiger引擎,中文检索等,而根据MongoDB版本划分可知,双数为稳定版本,所以决定升级至最新的MongoDb 3.2(笔者写这篇文时MongoDB 3.3为最新版本)。

     其实根据官网所给文档就能正常升级了,本文也是参考官网文档做升级,如果你准备参考本文进行操作,希望能在测试环境下测试没问题再上线以免出现问题。

     升级开始:

  1. 退出MongoDB 2.6服务

service mongod stop

关于退出的方法有很多种,比如使用netstat -nltp找到进程号,使用然后杀死进程(不建议使用-9直接强退);

又比如进入Mongo客户端,使用db.shutdownServer()关闭;

亦或者使用官网推荐方法等等,这里就不一一列出来,请自行选择使用。

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

2.新增yum源

vim /etc/yum.repos.d/mongodb-org-3.0.repo

编辑内容:

[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.0.asc

3.Yum升级开始

查看下yum信息

yum info mongodb-org

通过Yum更新MongoDB 2.6 to 3.0_第1张图片

开始升级,等待升级完成

yum upgrade mongodb-org

4.尝试启动服务

service mongod start

发现启动失败?不要着急,让我们查看日志(本日志路径为默认路径,日志路径可以使用配置文件修改)

tail -f /var/log/mongodb/mongod.log
2016-06-27T02:53:32.961-0700 E NETWORK  [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
2016-06-27T02:53:32.961-0700 I -        [initandlisten] Fatal Assertion 28578
2016-06-27T02:53:32.961-0700 I -        [initandlisten]
***aborting after fassert() failure

wKiom1dxH2_RDkK2AAA-3FFGpR0947.png-wh_50

根据日志提示,是无法unlink sock文件,需要我们手动删除sock文件,删除后运行即可。

最后,升级3.0到3.2的方法重复之前步骤即可,把MongDB的YUM源修改成3.2即可完成升级。

注:根据官网提示,3.2默认开启WiredTiger引擎