【问题标题】:what if mongodb failover take place when replication havnt not done yet如果在复制尚未完成时发生 mongodb 故障转移怎么办
【发布时间】:2013-09-19 17:44:16
【问题描述】:

我是 mongodb 新手,我有一个问题:

我正在设置一个 mongoDB 测试环境,有一个 mongos、3 个 conf 服务器、2 个分片(3 个服务器作为分片的复制集) 比方说,由于我的复制滞后很大(例如辅助备份,或网络问题。或发生其他事情。以防万一) 在此期间,主服务器已关闭, 会发生什么 ?自动故障转移选择一个辅助数据库作为新的主数据库,这些数据还没有复制吗?

我们会丢失数据吗? 如果是这样,我们该如何取回数据以及需要做些什么来避免此类问题。

非常感谢。

【问题讨论】:

    标签: mongodb replication failover


    【解决方案1】:

    这段时间,主服务器宕机了,会发生什么?

    不允许写入

    自动故障转移选择一个辅助数据库作为新的主数据库,这些数据还没有复制呢?

    如果数据没有从主要复制到次要然后成为主要,那么当主要作为次要返回到集合中时将发生回滚:http://docs.mongodb.org/manual/core/replica-set-rollbacks/

    当然,你是否丢失数据取决于写入是否写入日志和/或数据文件以及成员是否刚刚离开集合或崩溃。如果成员在写入可以进入日志之前崩溃,那么写入可能会丢失,是的。

    我们如何才能取回数据以及需要做什么才能避免此类问题。

    在大多数情况下,您可以使用w=majority,但这仍然会在无法处理的边缘情况下存在某些缺陷,例如,如果在写入可以传播给其他成员之前主节点故障转移等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      相关资源
      最近更新 更多