mongos配置数据库字符串存储在哪里?

时间:2014-01-20 04:29:42

标签: mongodb

我在mongo分片设置中犯了一个错误 - 我的配置数据库字符串出错了。我试图通过删除配置数据库服务器中的所有数据并重新启动所有mongod服务来清理它。但是,即使重启mongos后我仍然会遇到这样的错误,

当我跑步时:

sh.status():

我明白了:

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

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

1 个答案:

答案 0 :(得分:7)

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

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

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

解决此错误:

  • 关闭所有mongod进程(对于分片)
  • 关闭mongos进程
  • 重新启动mongod进程(对于分片)
  • 使用正确的mongos字符串
  • 重新启动--configsvr