2012-07-17 22 views
0

我在Mongo中使用copyDatabase将100万条记录(约97G)数据复制到另一个服务器。两台服务器都有500G以上的磁盘空间。但是,我注意到虽然进程仍在运行,但实际文件不再被添加。停止在xxxxx.11任何想法?是否有在Mongo CopyDatabase的限制

+0

您是否检查过'db.stats()'来查看实际数据大小?如果您删除了大量记录,则数据库的新副本可能会占用较少的磁盘空间(请参阅[了解磁盘使用情况](http://www.mongodb.org/display/DOCS/Excessive+Disk+Space #ExcessiveDiskSpace-UnderstandingDiskUsage))。 – Stennie 2012-07-17 23:38:27

回答

1

复制数据库将移动集合数据,然后为每个集合构建索引。在100GB数据集上构建索引可能需要很长时间(特别是对于少量RAM)。您很可能正处于大型索引构建过程中。

您可以通过观察日志并在目标数据库的shell中运行db.currentOp()来检查进度。

+0

shoudl我要复制数据库,还是应该做mongoDump,gzip,scp over和mongoRestore? – murvinlai 2012-07-18 00:11:11

+0

如果网络连接速度较慢,则mongodump + zip会更快。如果它之间很快,则copyDatabase命令更好。 – MrKurt 2012-07-18 00:17:46

+0

如果你可以负担得起你的主要mongo脱机或锁定它,只需转储数据库并将其转移到新的服务器。虽然'copyDatabase'工作正常有时如果有一些网络问题可能会出错。另外,如果oyu使用转储,将更容易理解正在发生的事情。最后,但并非最不重要的是主服务器上的压力较小(转储时间除外)。 – golja 2012-07-18 01:03:51