Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB分片问题_Mongodb_Sharding - Fatal编程技术网

MongoDB分片问题

MongoDB分片问题,mongodb,sharding,Mongodb,Sharding,我们的mongodb服务器部署了2个分片,每个分片有1个主服务器和2个从服务器。 四个从属服务器作为代理运行mongo config,其中两个从属服务器运行仲裁器。 但是现在不能使用mongodb 我可以连接到192.168.0.1:8000(mongos)并执行诸如“使用数据库”或“显示数据库”之类的查询,但我无法在所选数据库中执行查询,例如“db.foo.count()”、“db.foo.findOne()” 以下是错误日志: mongos> db.dev.count() Fri Au

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

我可以连接到192.168.0.1:8000(mongos)并执行诸如“使用数据库”或“显示数据库”之类的查询,但我无法在所选数据库中执行查询,例如“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上启动,如果同时运行多个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 }

请您澄清一下,您的设置以前是否有效,现在是否正在设置

要修复MongoDB,您可能需要遵循以下链接:

参考资料

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


它以前工作过吗?您是否更改了配置中的任何内容?您是如何设置副本集的?在运行mongos的服务器上,作为第一个测试,您是否可以尝试直接通过MongoShell连接到每个Mongod(配置和主机)?另外,为什么要在副本集上使用主/从配置?我只能在mongos上启动,如果同时运行多个mongos,查询将不会执行,错误日志:mongos>db.dev.count()Fri Aug 16 15:12:29未捕获异常:计数失败:{“断言”:“DBClientBase::findN:传输错误:10.81.4.72:7100查询:{setSharedVersion:\“\”,init:true,configdb:\“10.81.4.72:7300,10.42.50.26:7300,10.81.51.235:7300\”,serverID:ObjectId('520dd04967557902f73a9fba'),authoritive:true}”,“断言代码”:10276,“errmsg”:“db断言失败”,“确定”:0}基本上是说您的一个碎片出现问题,您的一条评论:“它在服务器崩溃和重新启动之前工作得很好,就像这样”让我怀疑,你检查过那个碎片上的损坏吗?你试过重播日志吗?你检查过服务器自己的硬件是否正常吗?它在服务器崩溃和重新启动之前工作得很好,就像这样吗reboot@feiyan你检查过腐败吗?