2014-01-20 78 views
1

我在我的mongo分片设置中犯了一个错误 - 我的配置数据库字符串中有错误。我试图通过删除配置数据库服务器中的所有数据并重新启动所有mongod服务来清除它。然而,在重新启动mongos即使我还是最初获得类似这样的错误,mongos配置数据库字符串在哪里存储?

当我运行:

sh.status(): 

我得到:

mongos specified a different config database string : stored : <old string here> 

在哪里,这是该字符串实际上是被存储在哪里?我试图在配置数据库本身以及碎片的成员中寻找它,但我似乎无法找到它。

+1

个Mongod /分片缓存在内存中。你需要重新启动它们。 –

回答

6

与在MongoDB 2.4中一样,为mongos服务器指定的--configsvr字符串也被缓存在分片mongod服务器的内存中。要使mongos服务器加入分片群集,它们必须具有identical config string(包括主机名的顺序)。

有一篇关于Migrate Config Servers with Different Hostnames的MongoDB手册中的教程,涵盖了整个过程,包括将配置服务器迁移到新主机(这不适用于您的情况)。

如果在重新启动所有内容后仍然看到“不同的配置数据库字符串”错误,则很可能在此过程中至少有一个流氓mongodmongos正在运行。

要解决此错误:

  • 关闭所有mongod进程(碎片)
  • 关闭mongos过程
  • 重启mongod进程(碎片)
  • 重启mongos用正确的--configsvr字符串
+0

也适用于我..谢谢 – user641887