2

我有一个在亚马逊 ec2 虚拟机上运行的 mongodb 服务器。VM 有大约 100GB 的存储空间,DB 以每天大约 3GB 的速度增长。

我试图弄清楚将数据库保存在外部服务器上的最佳方法是什么,并且只有亚马逊 VM 上的 mongodb 将数据维护一两天。然后应将数据同步到外部服务器并从 VM 上的数据库中删除。

mongo 有一个 clone 方法,但它看起来并不能完成这项工作。有没有人试图做类似的事情?

谢谢!

4

1 回答 1

1

MongoDB 并没有真正轻松地做到这一点(至少现在还没有)。如果可以的话,你现在最好在应用层实现它。

如果这真的不是一个选择,你可以尝试使用分片......

完成此操作有点棘手,但可能最简单的方法是按日期分片,并且随着每一天的过去,您都可以从 VM mongo 中添加和删除一个分片(例如,您可能会删除 3 个分片天前,并在​​未来 1 天添加一个新分片)。然后,使用您的外部服务器作为主分片,这样当数据不属于您的 3 天滚动分片时,数据始终会迁移到该服务器。

查看管理和管理分片标签,了解如何设置分片标签,使其适用于每个日期。每天晚上,您都需要一个 cron 作业来删除和添加这些碎片。这种方法的一个缺点可能是您需要每晚将 3 GB 的数据从 VM 移动到外部服务器。

于 2013-04-16T23:50:19.227 回答