我们正在 EC2 上运行 MongoDB 集群,并且在我们的日志文件中反复出现以下错误:
Assertion: 10429:setShardVersion failed! { "errmsg" : "exception: gotShardHost different than what i had before before
后面是所有现有分片和主机的信息。这个问题发生在我们尝试使用较新版本的 MongoDB 客户端 (1.8.2) 从我们的一台临时机器连接到集群之后,而我们现有的服务器和其他客户端使用的是 1.6.5。说我疯了吧,但我认为 MongoDB 应该能够从看似非常简单的错误中恢复过来,而不是像这样搞砸了。我们通过 Doctrine2 使用 PHP 驱动程序。
在网上搜索,我看到的唯一建议是“确保您运行的是相同版本的服务器和客户端”,我们确实在这样做。我们一直在尝试解决这个问题,持续了 12 个小时,但我们所做的一切都没有起到作用。由于 Mongo 没有响应而抛出此错误,导致我们的部分 Web 应用程序无法运行,这让一些人感到焦虑。;))
对于如何从中恢复的任何建议都将不胜感激。
答案1
我唯一能找到的是此主题在MongoDB 用户 Google 群组(以及对其的无耻的网站抓取。)
看起来你应该
- 验证所有客户端和服务器均的确运行相同版本。
- 重新启动出现此错误的分片上的 mongod。
如果这不起作用,您可能值得亲自向小组发帖寻求帮助或联系 10gen。