MongoDB :找不到要从中同步的成员



我对mongodb相当陌生

我有一个副本集 3 个节点1 个主要 (A)1 中学 (B)1 仲裁者 (C)

副本集是使用 MMS 创建的3个节点位于3个不同的城市

我不断在辅助设备上收到以下错误,每次都持续一秒钟

  1. 正常吗
  2. 如果不知道如何纠正它

           {
                    "_id" : 1,
                    "name" : "B:27017",
                    "health" : 1,
                    "state" : 2,
                    "stateStr" : "SECONDARY",
                    "uptime" : 1213371,
                    "optime" : Timestamp(1434051221, 1),
                    "optimeDate" : ISODate("2015-06-11T19:33:41Z"),
                    "infoMessage" : **"could not find member to sync from"**,
                    "configVersion" : 4,
                    "self" : true
            },
    

谢谢

问候

菲利普·库尔图瓦

确保辅助数据库至少具有与主数据库相同或更低的优先级值。 就我而言,我的次要优先级值高于主要优先级值

您可以通过运行来检查这一点

mongodcluster:PRIMARY> rs.conf()

https://docs.mongodb.com/manual/tutorial/adjust-replica-set-member-priority/

您需要确保 A、B、C 在每个节点上解析。

将它们添加到/etc/hosts 中

一 x.x.x.xb x.x.x.xC X.X.X.X

并在每个节点上执行此操作,然后重新启动Mongod,这应该可以修复它

愿你的oplog已经满了。您可以增加操作日志大小。

尝试这样做

  1. 关闭主服务器
  2. 使用直接访问数据文件创建操作日志的备份
  3. 在独立模式下重新启动 mongod
  4. 将当前操作日志复制到临时集合
  5. 删除当前操作日志
  6. 以所需大小重新创建操作日志
  7. 将临时集合中的oplog条目复制回闪亮的新oplog
  8. 重新启动 mongod 作为副本集的一部分

您可以在以下位置找到更多信息: 更改Oplog的大小

这是对我有用的:

从辅助主机执行rs.syncFrom命令,主要主机作为参数。就我而言,open5gs-mongodb-0.mongodb-svc:27017是主要的,open5gs-mongodb-1.mongodb-svc:27017是次要的。因此,我从次要副本上运行的 mongod shell 执行了以下命令 ( open5gs-mongodb-1.mongodb-svc:27017):

rs0:SECONDARY> rs.syncFrom("open5gs-mongodb-0.mongodb-svc:27017")
{
    "syncFromRequested" : "open5gs-mongodb-0.mongodb-svc:27017",
    "prevSyncTarget" : "open5gs-mongodb-0.mongodb-svc:27017",
    "ok" : 1,
    "$clusterTime" : {
        "clusterTime" : Timestamp(1642373299, 1),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    },
    "operationTime" : Timestamp(1642373299, 1)
}

最新更新