" replset找不到ID为1的奴隶,而不是跟踪53327c7cb143ca63cef31087"

时间:2014-11-03 02:15:55

标签: mongodb replication

经常rs.add / rs.remove后,“replset找不到id为1的slave,而不是跟踪53327c7cb143ca63cef31087”出现在mongod.log中。可以安全地忽略它吗?或者它是否意味着背后的问题?

1 个答案:

答案 0 :(得分:0)

在rs.add / rs.remove之后,您的副本_id可能不遵循连续的数字顺序,例如:

{
    "_id" : "rs0",
    "version" : 1,
    "members" : [
         {
            "_id" : 4,
            "host" : "mongodb0.example.net:27017"
         },
         {
            "_id" : 5,
            "host" : "mongodb1.example.net:27017"
         },
         {
            "_id" : 7,
            "host" : "mongodb2.example.net:27017"
         }
     ]
}

您可以使用rs.reconfig()重新建立订单:

var cfg = {
    "_id" : "rs0",
    "version" : 1,
    "members" : [
         {
            "_id" : 0,
            "host" : "mongodb0.example.net:27017"
         },
         {
            "_id" : 1,
            "host" : "mongodb1.example.net:27017"
         },
         {
            "_id" : 2,
            "host" : "mongodb2.example.net:27017"
         }
     ]
}
rs.reconfig(cfg);

只要您对阅读查询没有任何问题,就可以安全地忽略此日志错误消息(请参阅https://jira.mongodb.org/browse/JAVA-1260