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

Irs*_*hor 1 mongodb

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

当我跑:

sh.status():
Run Code Online (Sandbox Code Playgroud)

我明白了:

mongos specified a different config database string : stored : <old string here>
Run Code Online (Sandbox Code Playgroud)

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

Ste*_*nie 7

与MongoDB 2.4一样,--configsvrmongos服务器指定的字符串也缓存在分片mongod服务器上的内存中.为了使mongos服务器加入分片集群,它们必须具有相同的配置字符串(包括主机名的顺序).

MongoDB手册中有一个教程,用于迁移具有不同主机名的配置服务器,其中包括完整过程,包括将配置服务器迁移到新主机(在您的情况下不适用).

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

要解决此错误:

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