我有一个100万条推文的数据集,存储在Mongo中,未经优化和未编入索引。
我需要将上个月的所有推文复制到另一台服务器上,最好的方法是什么?
我的想法是使用Ruby脚本将相关推文提取并复制到服务器上的新数据库,然后运行mongo copyDatabase命令将其复制。它采取了可怕的长时间,任何其他方式吗?
require 'mongo_mapper'
MongoMapper.database = 'twitter'
require './models'
tweets = TwitterTweet.where(:created_at => {"$gt" => 1.month.ago}).all; # about 15 million
MongoMapper.database = 'monthly'
# copy the tweets over to the new db
tweets.each do |tweet|
tweet.save!
end;
答案 0 :(得分:0)
如果您需要在多个服务器上使用数据,则应该使用mongodb复制功能。 如果您只想备份数据,那么最快的方法就是复制db文件。
答案 1 :(得分:0)
一些想法:
答案 2 :(得分:0)
只需将数据库文件复制到新主机,启动mongod并删除不需要的文档/删除数据库/集合。这是最快捷的方式。