我有一个在亚马逊 ec2 虚拟机上运行的 mongodb 服务器。VM 有大约 100GB 的存储空间,DB 以每天大约 3GB 的速度增长。
我试图弄清楚将数据库保存在外部服务器上的最佳方法是什么,并且只有亚马逊 VM 上的 mongodb 将数据维护一两天。然后应将数据同步到外部服务器并从 VM 上的数据库中删除。
mongo 有一个 clone 方法,但它看起来并不能完成这项工作。有没有人试图做类似的事情?
谢谢!
我有一个在亚马逊 ec2 虚拟机上运行的 mongodb 服务器。VM 有大约 100GB 的存储空间,DB 以每天大约 3GB 的速度增长。
我试图弄清楚将数据库保存在外部服务器上的最佳方法是什么,并且只有亚马逊 VM 上的 mongodb 将数据维护一两天。然后应将数据同步到外部服务器并从 VM 上的数据库中删除。
mongo 有一个 clone 方法,但它看起来并不能完成这项工作。有没有人试图做类似的事情?
谢谢!
MongoDB 并没有真正轻松地做到这一点(至少现在还没有)。如果可以的话,你现在最好在应用层实现它。
如果这真的不是一个选择,你可以尝试使用分片......
完成此操作有点棘手,但可能最简单的方法是按日期分片,并且随着每一天的过去,您都可以从 VM mongo 中添加和删除一个分片(例如,您可能会删除 3 个分片天前,并在未来 1 天添加一个新分片)。然后,使用您的外部服务器作为主分片,这样当数据不属于您的 3 天滚动分片时,数据始终会迁移到该服务器。
查看管理和管理分片标签,了解如何设置分片标签,使其适用于每个日期。每天晚上,您都需要一个 cron 作业来删除和添加这些碎片。这种方法的一个缺点可能是您需要每晚将 3 GB 的数据从 VM 移动到外部服务器。