我在amazon ec2 VM上运行了mongodb服务器。虚拟机拥有大约100GB的存储空间,而数据库的增长速度约为每天3GB。
我正在试图找出将数据库保留在外部服务器上的最佳方法,并且只有亚马逊虚拟机上的mongodb维护数据一到两天。然后,数据应同步到外部服务器并从VM上的DB中删除。
mongo有一个克隆方法,但看起来它不会起作用。有没有人试图做类似的事情?
谢谢!
答案 0 :(得分:1)
MongoDB并没有真正做到这一点(至少现在还没有)。如果可以的话,你现在最好在应用层实现它。
如果那不是一个选项,你可以尝试使用分片......
实现这一点有点棘手,但可能最简单的方法是按日期进行分片,并且随着每一天的过去,你都要添加和删除VM mongo中的分片(例如,你可能会删除shard for 3天前,并在将来添加一个新的碎片1天)。然后,使用外部服务器作为主分片,这样当数据不在3天滚动分片中时,数据总是迁移到该服务器。
请查看Administer and Manage Shard Tags,了解如何设置分片代码,以便它们适用于每个日期。每晚,你需要一个cron作业来删除和添加这些碎片。这种方法的一个缺点可能是您需要每晚从VM移动3 GB数据到外部服务器。