2
  1. 如何在 mongolab 上设置带有镜像的本地 mongodb(将所有写入从本地传播到 mongolab,因此它们始终是同步的 - 我不关心原子,只是它在合理的时间范围内同步)
  2. 如果本地服务器停止工作(Ruby/Rails、mongo 驱动程序和 mongoid),如何使用 mongolab 作为后备。

背景:我曾经有一个本地 mongo 服务器,但它偶尔会崩溃,我的所有应用程序都停止工作 + 我必须“修复”数据库才能重新启动它。然后我切换到我非常满意的 mongolab,但它产生了大量流量,我想通过本地“缓存”来避免,但不必担心我的本地缓存崩溃导致我所有的应用程序停止在职的。数据库相对较小,因此大小不是问题。我不是想消除与 mongolab 通信的流量开销,只是降低一点。

4

1 回答 1

2

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

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

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

最后一个选项是使用您选择的语言的可尾光标自己编写一些东西,以将 oplog 数据提供给远程实例。

于 2012-11-14T05:44:53.820 回答