Mongodb2.6升级到Mongodb3.0.2

停止老版本Mongodb

>use admin  
>db.shutdownServer(); 

下载解压新版本Mongodb

wget https://fastdl.mongodb.org/linux/mongodb-linux-i686-3.0.2.tgz
gzip -d mongodb-linux-i686-3.0.2.tgz
tar xvf mongodb-linux-i686-3.0.2.tar
mv mongodb-linux-i686-3.0.2 mongodb3.0.2

创建两个目录

mkdir data
mkdir logs

把老版本的Mongodb配置文件拷贝到新Mongodb目录

cp /data/mongodb2.6.4/mongodb.conf /data/mongodb3.0.2/

mongodb.conf内容示例:

bind_ip=127.0.0.1
port=27017
dbpath=/data/mongodb3.0.2/data/
logpath=/data/mongodb3.0.2/logs/mongodb.log
logappend=true
auth=true
fork=true

通过Mongodb3启动Mongodb准备备份

/data/mongodb3.0.2/bin/mongod --dbpath /data/mongodb2.6.4/data/

备份

/data/mongodb3.0.2/bin/mongodump --out /data/mongodb3.0.2/bak/

然后关闭数据库,重新启动,使用WiredTiger引擎

/data/mongodb3.0.2/bin/mongod --storageEngine wiredTiger --dbpath /data/mongodb3.0.2/data/

恢复数据

/data/mongodb3.0.2/bin/mongorestore /data/mongodb3.0.2/bak/

恢复完成以后,再停止Mongodb。

修改mongodb.conf

bind_ip=127.0.0.1
port=27017
dbpath=/data/mongodb3.0.2/data/
logpath=/data/mongodb3.0.2/logs/mongodb.log
logappend=true
auth=true
fork=true
storageEngine=wiredTiger

然后启动Mongodb

/data/mongodb3.0.2/bin/mongod --config /data/mongodb3.0.2/mongodb.conf
------分割线------结果------
about to fork child process, waiting until server is ready for connections.
forked process: 11197
child process started successfully, parent exiting

记得删除先前版本/usr/bin/mongo,把新版本的复制过去

测试了AUTH,一切正常,创建的账户也没丢失。

另外数据相比2版本的,确实占用了很少的空间。以后再也不会随随便便删除集合(释放空间很麻烦),删除数据库了。

[root@localhost mongodb3.0.2]# mongo
MongoDB shell version: 3.0.2
connecting to: test
> use datatest
switched to db datatest
> db.auth(‘admin‘,‘admin‘)
1

一切正常,删除以前的目录,跟备份数据的目录。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。