mongo数据迁移三招
2016-01-05 20:04
465 查看
环境说明:bbs数据采集的数据越来越多,目前是50G,每天大概以200W的数据量增长。而当前服务器1.2上面的空间不足,需要把数据迁移到空间足够大的1.3上面去
尝试了2种方式对数据进行迁移,一种是rsync,直接拉取数据;另一种是使用mongodump/mongorestore
1.rsync
操作步骤:
1.2:
[mongodb]
path = /data1/mongodb/data
hosts allow = 192.168.1.0/24
read only = no
write only = no
1.3:
rsync -avz root@192.168.1.2::mongodb/dbname /data/mongodb-linux-x86_64-1.8.1/data/
chown -R mongodb:mongodb /data/mongodb-linux-x86_64-1.8.1/data/
使用时间:50分钟
到目标服务器数据:50G
优点:使用时间短
缺点:需要配置rsync,数据占用的空间大(数据原封不动的拉取过来,包括碎片)
2.mongodump/mongorestore
操作步骤:
mongodump:
/data/PRG/mongodb/bin/mongodump --host 192.168.1.2:27017 -d dbname -uuername -ppasswd -o /data/mongodb-linux-x86_64-1.8.1/data/ --directoryperdb
mongorestore:
/data/mongodb-linux-x86_64-1.8.1/bin/mongorestore --dbpath /data/mongodb-linux-x86_64-1.8.1/data/ --directoryperdb /data/dbname/
chown -R mongodb:mongodb /data/mongodb-linux-x86_64-1.8.1/data/
使用时间:35(mongodump)+90(mongorestore)
到目标服务器数据:20G(需要的空间大大减小,拉取过程中相当于做了一次碎片整理)
优点:迁移到新服务器的数据经过了整理,需要空间大大减小
缺点:需要时间长
数据迁移时需要停mongo进行操作,而2种方式各有优缺点,如果可以忽略操作时间内的数据的话,那么使用第2种方式会比较好(已经有不少例子因为碎片带来严重的后果)
3、mongoexport -
mongoimport
命令mongoimport -h 172.16.8.189 -d fashy -c orderInfo --type csv --file E:\mongodate\1202.csv --headerline --upsert
-d 指定把数据导入到哪一个数据库中
-c 指定把数据导入到哪一个集合中
--type 指定导入的数据类型
--file 指定从哪一个文件中导入数据
--headerline 仅适用于导入csv,tsv格式的数据,表示文件中的第一行作为数据头
--upsert 以新增或者更新的方式来导入数据
ongo客户端常用命令
尝试了2种方式对数据进行迁移,一种是rsync,直接拉取数据;另一种是使用mongodump/mongorestore
1.rsync
操作步骤:
1.2:
[mongodb]
path = /data1/mongodb/data
hosts allow = 192.168.1.0/24
read only = no
write only = no
1.3:
rsync -avz root@192.168.1.2::mongodb/dbname /data/mongodb-linux-x86_64-1.8.1/data/
chown -R mongodb:mongodb /data/mongodb-linux-x86_64-1.8.1/data/
使用时间:50分钟
到目标服务器数据:50G
优点:使用时间短
缺点:需要配置rsync,数据占用的空间大(数据原封不动的拉取过来,包括碎片)
2.mongodump/mongorestore
操作步骤:
mongodump:
/data/PRG/mongodb/bin/mongodump --host 192.168.1.2:27017 -d dbname -uuername -ppasswd -o /data/mongodb-linux-x86_64-1.8.1/data/ --directoryperdb
mongorestore:
/data/mongodb-linux-x86_64-1.8.1/bin/mongorestore --dbpath /data/mongodb-linux-x86_64-1.8.1/data/ --directoryperdb /data/dbname/
chown -R mongodb:mongodb /data/mongodb-linux-x86_64-1.8.1/data/
使用时间:35(mongodump)+90(mongorestore)
到目标服务器数据:20G(需要的空间大大减小,拉取过程中相当于做了一次碎片整理)
优点:迁移到新服务器的数据经过了整理,需要空间大大减小
缺点:需要时间长
数据迁移时需要停mongo进行操作,而2种方式各有优缺点,如果可以忽略操作时间内的数据的话,那么使用第2种方式会比较好(已经有不少例子因为碎片带来严重的后果)
3、mongoexport -
mongoimport
命令mongoimport -h 172.16.8.189 -d fashy -c orderInfo --type csv --file E:\mongodate\1202.csv --headerline --upsert
-d 指定把数据导入到哪一个数据库中
-c 指定把数据导入到哪一个集合中
--type 指定导入的数据类型
--file 指定从哪一个文件中导入数据
--headerline 仅适用于导入csv,tsv格式的数据,表示文件中的第一行作为数据头
--upsert 以新增或者更新的方式来导入数据
ongo客户端常用命令
相关文章推荐
- Google Chrome 扩展程序开发
- Google微软IBM能打败亚马逊AWS的理由很丰满,进展却骨感
- Good Bye 2015B
- Running Spark GraphX algorithms on Library of Congress subject heading SKOS
- Good Bye 2015 A
- UVa 12019 - Doom's Day Algorithm
- Zoho Survey:给问卷加自己的logo
- django foreignkey外键使用 相当于left join
- EGOCache缓存框架详细讲解
- 蓝桥杯 寻找数组中最大值(sort排序+结构体)
- Django开发博客(四)——建立文章列表
- 用户登出Logout or Timeout
- go建造者模式,【go设计模式】
- Google Map开发系列(七)——使用谷歌地图API实现自定义控件
- Django Meta内部类选项
- Google Map开发系列(六)——谷歌地图坐标系统总结
- django开发框架之jumpserver
- 使用leangoo实现多泳道看板任务
- 使用vim处理django
- Google Map开发系列(五)——怎样在你的网页里嵌入地图