阅读MongoDB有关如何configuration集群的主从configuration文档(我们的集群将有超过12个节点,所以不幸的是我们不能有一个副本集configuration),我怎么能促进一个奴隶没有掌握不得不停止任何进程?
有没有我们可以使用的命令,比如Redis的slaveof命令,它可以让我们在不需要重启进程的情况下促使一个奴隶主宰呢?
这是我们在MongoDB文档中find的( http://docs.mongodb.org/manual/core/master-slave/ ):
要从不可用或损坏的主站(以下示例中的A)永久故障切换到从站(B):
- 你可以有多个可写的,权威的BIND DNS服务器为同一个区域,如AD集成的DNS?
- 起搏器DRBD资源没有升级到任何节点上的主站
- BIND从站不会与主站同步,直到重新启动
- 没有主站停机时间的MySQL从站复制重置(使用MyISAM)
- BIND,Master,Slaves和Notify
closuresA.停止B上的mongod。备份并从dbpath中移动以B上的本地开头的所有数据文件。 警告删除本地。*是不可撤销的,不能撤消。 请谨慎执行此步骤。 使用–master选项重新启动m上的B。 注意这是一次性操作,不可逆。 A完成重新同步之前,不能成为B的奴隶。
这真的是唯一的方法吗?
系统pipe理员的补充答案在评论中清除你的问题:
不,目前(2.4版本)没有办法超过副本集中的12个节点。 您可以考虑使用Mongo连接器来作为一个可能的解决scheme。 连接器允许您从另一个集合中的一个集合重放操作,基本上是通过拖拽oplog(这是通常的复制工作方式)。 但是,这意味着解决群集之间的任何同步问题不会是自动的,并且基本上取决于您。
作为参考,投票/观看增加12个节点限制的相关问题是SERVER-3110 – 它目前预定为2.5.x(当前不稳定的开发分支),但是与所有这些事情一样,直到它被提交并且在稳定的版本,你无法确定何时会完成。
是的,这确实是切换angular色的方法。 Master / Slave为什么不赞成使用副本集是有原因的。 在主/从文档中,他们提供了一种使用副本集和两个节点来模拟主/从行为的方法。 如果你这样设置,你可以通过Mongo控制台的简单命令来获得模式的热插拔。
{ _id : 'replSet', members : [ { _id : 0, host : "mongomaster", priority : 0}, { _id : 1, host : "mongoslave", priority : 1 } ] }
这将为您提供一个angular色交换。 您正在告诉副本集来交换哪些服务器充当主要服务器,哪些服务器充当主要服务器。