2

我们的 mongodb 服务器部署了 2 个分片,每个分片有 1 个主服务器和 2 个从服务器。四个从服务器运行 mongo config 作为代理,两个从服务器运行仲裁器。但是mongodb现在不能用了。

我可以连接到 192.168.0.1:8000(mongos) 并执行诸如“使用数据库”或“显示 dbs”之类的查询,但我无法在选定的数据库中执行查询,例如“db.foo.count()”、“ db.foo.findOne()'

这是错误日志:

mongos> db.dev.count()
Fri Aug 16 12:55:36 uncaught exception: count failed: {
    "assertion" : "DBClientBase::findN: transport error: 10.81.4.72:7100 query: { setShardVersion: \"\", init: true, configdb: \"10.81.4.72:7300,10.42.50.26:7300,10.81.51.235:7300\", serverID: ObjectId('520db0a51fa00999772612b9'), authoritative: true }",
    "assertionCode" : 10276,
    "errmsg" : "db assertion failure",
    "ok" : 0
}




Fri Aug 16 11:23:29 [conn8431] DBClientCursor::init call() failed
Fri Aug 16 11:23:29 [conn8430] Socket recv() errno:104 Connection reset by peer 10.81.4.72:7100
Fri Aug 16 11:23:29 [conn8430] SocketException: remote: 10.81.4.72:7100 error: 9001 socket exception [1] server [10.81.4.72:7100] 
Fri Aug 16 11:23:29 [conn8430] DBClientCursor::init call() failed
Fri Aug 16 11:23:29 [conn8430] DBException in process: could not initialize cursor across all shards because : DBClientBase::findN: transport error: 10.81.4.72:7100 query: { setShardVersion: "", init: true, configdb: "10.81.4.72:7300,10.42.50.26:7300,10.81.51.235:7300", serverID: ObjectId('520d99c972581e6a124d0561'), authoritative: true } @ s01/10.36.31.36:7100,10.42.50.24:7100,10.81.4.72:7100

我只能在 mongos 上启动,如果同时运行 1 个以上的 mongos,则不会执行查询,错误日志:

mongos> db.dev.count() Fri Aug 16 15:12:29 uncaught exception: count failed: { "assertion" : "DBClientBase::findN: transport error: 10.81.4.72:7100 query: { setShardVersion: \"\", init: true, configdb: \"10.81.4.72:7300,10.42.50.26:7300,10.81.51.235:7300\", serverID: ObjectId('520dd04967557902f73a9fba'), authoritative: true }", "assertionCode" : 10276, "errmsg" : "db assertion failure", "ok" : 0 }
4

1 回答 1

0

您能否澄清一下您的设置之前是否正常工作,如果您现在只是设置它?

要修复 MongoDB,您可能需要点击以下链接: http ://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/

参考

MongoDB 文档:部署 Shard-Cluster

MongoDB 文档:将分片添加到现有集群

旧的,过时的(!)信息:

关于为 MongoDB 设置分片的 YouTube 视频

blog.serverdensity.com 上的相应博客

于 2013-08-16T05:25:09.023 回答