Mongodb2.6升级到Mongodb3.0.2笔记
PS:升级到3版本的Mongodb以后,drop集合是可以直接释放磁盘空间的
停止老版本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
一切正常,删除以前的目录,跟备份数据的目录。
Update:
更新到Mongodb3.0.2版本以后,一切正常,在使用 mongostat的时候,不能像以前一样直接使用
mongostat -u admin -p admin
命令直接查看状态
显示如下:
# mongostat -u admin -p admin
2015-04-16T10:48:13.192+0800 --authenticationDatabase is required when authenticating against a non $external database
现在需要多加个参数“--authenticationDatabase”
命令如下:
# mongostat -u root -p root123 --authenticationDatabase=admin
测试的时候,还只能选择"admin"这个数据库,选择其他的数据库,用其他库的认证账户都不行
错误如下:
2015-04-16T10:49:57.912+0800 Failed: not authorized on admin to execute command { serverStatus: 1, recordStats: 0 }
或者
2015-04-16T10:51:17.267+0800 Failed: error connecting to db server: server returned error on SASL authentication step: Authentication failed.
mongotop命令也一样
另外竟然mongostat不显示操作的库名了。

Mongodb2.6升级到Mongodb3.0.2笔记的更多相关文章
- Mongodb3.0.6副本集+分片学习笔记
一.使用问题记录 1. mongodb3.0.6使用mongostat参数 >./mongostat -h 127.0.0.1:27017 -u root -p 123456 /authenti ...
- gradle2.0笔记——让项目升级到gradle2.0
昨晚看到QQ群消息说gradle2.0发布了,今天去看了一下,确实是昨天发布的,为rc版本:Gradle 2.0-rc-2.于是决定试一下. gradle可以在官网上下载,地址如下:http://ww ...
- mongodb3.0版本的2种引擎对比
mongodb3.0以后 增加了wiredtiger引擎.常规引擎也升级到MMAPv1引擎(MongoDB2.6及以下版本用的是MMAP引擎): mmapv1引擎: col ...
- 记录一次MongoDB3.0.6版本wiredtiger与MMAPv1引擎的写入耗时对比
一.MongoDB3.0.x的版本特性(相对于MongoDB2.6及以下): 增加了wiredtiger引擎: 开源的存储引擎: 支持多核CPU.充分利用内存/芯片级别缓存(注:10月14日刚刚发布的 ...
- mongodb3.0 性能測试报告 一
mongodb3.0 性能測试报告 一 mongodb3.0 性能測试报告 二 mongodb3.0 性能測试报告 三 測试环境: 服务器:X86 pcserver 共6台 cpu: 单颗8核 ...
- HTTP2.0 简明笔记
前言 RFC2616发布以来,一直是互联网发展的基石.HTTP协议也成为了可以在任何领域使用的核心协议,基于这个协议人们设计和部署了越来越多的应用.HTTP的简单本质是其快速发展的关键,但随着越来越多 ...
- ADT for Eclipse无法升级到23.0的解决方法(确保您的网络能够访问google的地址)
进行以下步骤时,请确保您的网络能够访问google的地址,因为有可能是无法访问google地址导致无法升级,该文不是为了解决这个问题!!! 最近一次的升级,ADT无法从ADT 22.X升级到23.0. ...
- Oracle_RAC数据库GI的PSU升级(11.2.0.4.0到11.2.0.4.8)
Oracle_RAC数据库GI的PSU升级(11.2.0.4.0到11.2.0.4.8) 本次演示为升级oracle rac数据库,用GI的psu升级,从11.2.0.4.0升级到11.2.0.4.8 ...
- MongoDB3.0新版本几点介绍
2015年3月3号,MongoDB新版本3.0发布了,和以前版本相比,这次改动较大,主要有以下几个方面: 1. 引入了插件式的存储引擎架构,允许第三方根据实际项目的需要开发存储引擎,类似于MySql中 ...
随机推荐
- 【Android - 框架】之可悬浮列表StickyHeadersRecyclerView
这是timehop的GitHub上发表的一个控件框架,大家可以去参考它的[GitHub]. 这里先贴出GitHub上提供的效果图: 要使用这个框架,我们需要首先导入它的依赖: compile 'com ...
- 【Android - MD】之TabLayout的使用
TabLayout是Android 5.0新特性--Material Design中的一个控件,是一个标签页的导航条,常结合ViewPager完成页面导航. 和其他MD控件一样,使用TabLayout ...
- SQL语法集锦三:合并列值与分拆列值
本文转载http://www.cnblogs.com/lxblog/archive/2012/09/29/2708724.html 在SQL中分拆列值和合并列值老生常谈了,从网上搜刮了一下并记录下来, ...
- DataTable无法使用AsEnumerable ()的解决办法
本人定义了DataSet后将表1赋给datatable,在写linq时调用datatable.asenumerable(),但报datatable不包含asenumerable的定义,求高手指点.Sy ...
- sql server 获取每一个类别中值最大的一条数据
/* 数据如下: name val memo a 2 a2(a的第二个值) a 1 a1--a的第一个值 a 3 a3:a的第三个值 b 1 b1--b的第一个值 b 3 b3:b的第三个值 b 2 ...
- atoi、stoi、strtoi区别
首先atoi和strtol都是c里面的函数,他们都可以将字符串转为int,它们的参数都是const char*,因此在用string时,必须调c_str()方法将其转为char*的字符串.或者atof ...
- gulp的点点滴滴
去年用gulp,但一直没有写篇博客,今天有时间无聊写一篇.... 什么是gulp?gulp的官网title上对这个工具有一个比较准确的定义,叫做:基于流的自动化构建工具.如果你查看它的网页源代码,还会 ...
- 什么是html,什么是php
学了这么长时间的网站建设,好像对这两个概念说以来还是语无伦次的,所以就来写一写了.html是什么呢,官方解释:超文本标记语言,超文本就是指页面可以包含图片,连接等非文字元素.超文本标记语言也是一种规范 ...
- sql -以零作除数
将表达式改为: case when b=0 then 0 else a/b end
- Linq 调试
void Main() { var MyMonitor = new Devart.Data.Oracle.OracleMonitor(); MyMonitor.IsActive = true; var ...