Mongodb hotswap dbs

时间:2012-10-29 10:49:28

标签: mongodb

我使用MongoDB作为非规范化存储,状态每15分钟完全重建一次。重建过程需要很多时间和资源。有没有办法组织表“hotswap”进程,以避免在重建期间数据库锁定和性能下降。让我们假设我在另一台服务器上构建新版本的DB,制作所有需要的索引等,然后在主服务器上复制db文件并“交换”表,以便用户在交换后立即获得刷新数据?

1 个答案:

答案 0 :(得分:2)

MongoDB使用pre-allocated data files所以如果你经常删除和重建数据库,你可能会在搅拌磁盘。数据文件使用memory-mapped I/O打开,没有“热插拔”或重命名数据库的条款。

可以重复使用已删除集合中的空间,因此更好的方法可能是根据您的15分钟间隔生成临时集合名称,这样您的程序就可以预测“交换”到下一个集合,并且可以删除旧集合。

如果您使用的是MongoDB 2.2或更高版本,则还有其他选项: