Mongos陈旧配置错误

时间:2011-12-19 15:35:20

标签: java mongodb sharding

尝试查询分片集合时,在我的mongos日志中出现以下错误。

ns: database.coll could not initialize cursor across all shards because : 
stale config detected for ns: database.coll ParallelCursor::_init @ 
rs_a/hostA:27018,hostB:27018 attempt: 0

错误源自运行mongos的应用程序服务器,该服务器从三个分布式配置服务器加载其配置。 mongo集群本身有两个分片,每个分片都有一个三元副本集。该错误伴随着严重降低的性能。

运行Mongo 2.0.1并使用java驱动程序。

2 个答案:

答案 0 :(得分:0)

你是否只看到1个mongos的错误? 那个mongos,你看到所有副本集还是只有一个错误?

根据这些答案,您可以缩小问题范围。 如果您觉得只有少数进程出错,请尝试重新启动它们或发出db.adminCommand(“flushRouterConfig”)

答案 1 :(得分:0)

经过大量的故障排除后,此问题的最终解决方案是重新启动所有配置服务器。不幸的是,flushRouterConfig会尝试重新连接,但会返回相同的陈旧配置错误消息。

请注意,由于分片配置服务器不是复制副本,因此当一台服务器关闭时,它们将变为只读,并且不会接受任何块更改信息。

我希望我能更深入地了解这个问题。似乎肯定是mongos或2.0.1的配置服务器中的错误,因为我的副本设置/分片没有经历拓扑更改。