我有关于用shard使用mongos的问题,我在开发环境中构建了shard集群--我有两个碎片(不包括仅供测试的复制)--一个配置和一个mongos --当我关闭一个碎片时,mongos无法找到数据(如find(),count()……).it抛出这样的套接字异常:socket exception CONNECT_ERROR for 127.0.0.1:20000代码:11002可以帮助我找出问题出在哪里,在它在共享集群中编写文档之前,我看到了它们是否仍然可以工作。我感谢你的帮助,我用这些shell来构建它。
shard 1
mongod --shardsvr --port 10000 --dbpath c:\shard\data\shard1\r0 --oplogSize 64 --logpath c:\shard\logs\r0.log --logappend
shard2
mongod --shardsvr --port 20000 --dbpath c:\shard\data\shard2\r0 --oplogSize 64 --logpath c:\shard\logs\r3.log --logappend
config
mongod --configsvr --dbpath c:\shard\data\config --port 40000 --logpath c:\shard\logs\config.log --logappend
mongos
mongos --configdb 127.0.0.1:40000 --port 50000 --chunkSize 1 --logpath c:\shard\logs\mongos.log --logappend
mongo 127.0.0.1:50000/admin
db.runCommand({addshard:"127.0.0.1:10000",name:"ShardSetA"})
db.runCommand({addshard:"127.0.0.1:20000",name:"ShardSetB"})
db.runCommand({enablesharding:"Staff"});
var server=["127.0.0.1:10000","127.0.0.1:20000"]
db.runCommand({shardcollection:"Staff.StaffInfo",key:{StaffName:1}})
for ( var x=65; x<=65+25; x+=10 ){
var index=x+10>65+25?65+25:x+10;
db.runCommand( { split : "Staff.StaffInfo" , middle : { StaffName: String.fromCharCode(index)} } );}
var i=0;
for ( var x=65; x<=97+25; x+=10 ){db.adminCommand( {moveChunk : "Staff.StaffInfo" ,find : {StaffName: x}, to : server[i%2] });i++} 发布于 2015-09-22 13:37:05
我已经解决了这个问题。问题有三种情况。1.从普通碎片中查询,mongodb可以提供正确的数据2。从所有碎片(包括脱机碎片)查询mongodb将抛出异常。3.从脱机碎片查询mongodb将抛出异常
所以,如果你想保持高性能的切分,请使用复制!如果您从其他文件查询,请设置部分标志,以提供来自普通碎片的返回数据。
https://stackoverflow.com/questions/32697115
复制相似问题