您的位置:首页 > 编程语言 > Go语言

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客户端常用命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: