带有mongolab镜像的本地mongo服务器&倒退

时间:2012-11-14 05:15:01

标签: ruby mongodb mlab

  1. 如何使用mongolab上的镜像设置本地mongodb(将所有写入从本地传播到mongolab,因此它们始终是同步的 - 我不关心原子,只是它在合理的时间范围内同步)
  2. 如果本地服务器停止工作(Ruby / Rails,mongo驱动程序和mongoid),如何使用mongolab作为后备。
  3. 背景:我曾经有一个本地mongo服务器,但它偶尔会崩溃,我的所有应用程序都停止工作+我不得不“修复”数据库重新启动它。然后我切换到我非常满意的mongolab,但它产生了很多流量,我想通过拥有本地“缓存”来避免,但不必担心我的本地缓存崩溃导致我的所有应用程序停止工作。 DB相对较小,因此大小不是问题。我并没有试图消除与mongolab通信的流量开销,只是降低了一点。

1 个答案:

答案 0 :(得分:2)

我假设您不希望mongolab实例只是副本集的一部分(或者可能不提供)。最简单的方法是将远程mongod实例添加为hidden member(优先级0),并让它从本地实例复制数据。

您可以使用的另一种直接解决方案是mongooplog,它可用于在一台服务器上轮询oplog,然后将其应用到另一台服务器上。基本上按需复制(您需要适当地播种一个实例等,并且需要管理任何故障)。更多信息:

http://docs.mongodb.org/manual/reference/mongooplog/

最后一个选项是使用您选择的语言tailable cursor自己编写内容,将oplog数据提供给远程实例。