我在mongo分片设置中犯了一个错误 - 我的配置数据库字符串出错了。我试图通过删除配置数据库服务器中的所有数据并重新启动所有mongod服务来清理它。但是,即使重启mongos后我仍然会遇到这样的错误,
当我跑步时:
sh.status():
我明白了:
mongos specified a different config database string : stored : <old string here>
这个字符串实际存储在哪里?我尝试在配置数据库本身以及碎片的成员中查找它,但我似乎无法找到它。
答案 0 :(得分:7)
与MongoDB 2.4一样,为--configsvr
服务器指定的mongos
字符串也会缓存在分片mongod
服务器的内存中。要使mongos
服务器加入分片群集,它们必须具有identical config string(包括主机名顺序)。
在Migrate Config Servers with Different Hostnames的MongoDB手册中有一个教程,涵盖了整个过程,包括将配置服务器迁移到新主机(在您的情况下不适用)。
如果您在重新启动所有内容后仍然看到“不同的配置数据库字符串”错误,则可能是您在此过程中至少有一个流氓mongod
或mongos
正在运行。
解决此错误:
mongod
进程(对于分片)mongos
进程mongod
进程(对于分片)mongos
字符串--configsvr