mongodb故障转移示范!需要帮助

时间:2014-07-08 05:10:11

标签: mongodb

这是一个试图玩Mongodb的新手。我试图在我的课程中演示缩放,这意味着,我需要证明我有2个mongoDB实例启动并运行,我需要复制它们,将一个设置为主设备,另一个设置为辅助设备。

你们中的任何人都可以建议我一个简单的方法来证明如果主要/主人失败,奴隶/次要成为主人吗?

请尽可能简单,因为我正在向相当初学的MongoDB教学

3 个答案:

答案 0 :(得分:1)

MongoDB replica sets 主/从。为了实现自动故障转移,您需要让副本集中的大多数节点能够选择新的主节点。副本集中的最小节点数应为3,可以是3个数据承载节点或2个数据承载节点,也可以是arbiter,这是在选举中投票的节点。

单独使用复制的演示更多是关于故障转移和冗余而不是缩放(更好的演示'以及分片)。

如果您想要一种非常简单(并且非生产)方式在开发环境中站立副本集或分片群集,我建议使用mlaunch脚本mtools的一部分。

例如,要使用仲裁器创建3节点副本集:

mlaunch --replicaset --nodes 2 --arbiter

创建一个分片群集,其中包含由副本集(加mongos和配置服务器)支持的3个分片:

mlaunch --replicaset --sharded 3

正如此处其他评论中所述,免费MMS Monitoring服务是可视化MongoDB部署中活动的好方法,您可以使用db.shutdownServer()关闭特定节点以查看结果。< / p>

答案 1 :(得分:0)

最简单的方法是设置MongoDB monitoring service。在一个上停止MongoD进程并观察另一个接管。但是,使用副本集而不是主副本,因为它们是the recommended approach

答案 2 :(得分:0)

实际上,这很容易

  1. 设置一个副本集,其中包含2&#34; normal&#34; mongod和仲裁者
  2. 使用mongod
  3. 连接到两个普通mongo
  4. 显示rs.status()的输出。 (请注意self字段)
  5. 关闭当前的主要
  6. 一次又一次地显示rs.status()的输出,直到前一个中学被选为主要
  7. 另一种选择是编写一个利用驱动程序的简单java应用程序,将其置于无限循环中,每秒写入一个条目并输出数据库中的对象数。捕获异常并写出发生了问题。启动分片群集,然后启动应用程序。程序运行时关闭主服务器。在选举期间,可能会有例外情况被抛出。一旦前中学被选为初选,文件计数应该再次开始上升。