Estou tentando fragmentar minha coleção. quando executo o comando:
sh.enableSharding("testdb")
Eu recebo:
{
"ok" : 1,
"operationTime" : Timestamp(1552083125, 2),
"$clusterTime" : {
"clusterTime" : Timestamp(1552083125, 2),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
Agora, quando tento fragmentar minha coleção com o comando: "sh.shardCollection("testdb.testcollection", {testkey:1})"
Eu recebo o erro:
{
"ok" : 0,
"errmsg" : "Cannot accept sharding commands if not started with --shardsvr",
"code" : 193,
"codeName" : "NoShardingEnabled",
"operationTime" : Timestamp(1552083136, 4),
"$clusterTime" : {
"clusterTime" : Timestamp(1552083136, 4),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
Verifiquei o status do estilhaço e parece que foi bem-sucedido:
sh.status()
--- Sharding Status ---
sharding version: {
"_id" : 1,
"minCompatibleVersion" : 5,
"currentVersion" : 6,
"clusterId" : ObjectId("5c82df7b7a98360e9dd3c5da")
}
shards:
{ "_id" : "shard0000", "host" : "127.0.0.1:27023", "state" : 1 }
{ "_id" : "shard0001", "host" : "127.0.0.1:27024", "state" : 1 }
active mongoses:
"4.0.6" : 1
autosplit:
Currently enabled: yes
balancer:
Currently enabled: yes
Currently running: no
Failed balancer rounds in last 5 attempts: 0
Migration Results for the last 24 hours:
No recent migrations
databases:
{ "_id" : "config", "primary" : "config", "partitioned" : true }
{ "_id" : "testdb", "primary" : "shard0000", "partitioned" : true, "version" : { "uuid" : UUID("ed327ab3-1de9-4a0a-89f5-8d0bf81015fc"), "lastMod" : 1 } }
Então, por que recebo esse erro quando tento shardCollection? Estou executando tudo isso na instância do mongos
Se um replicaset precisar ser adicionado como shard em um cluster shard, o argumento --shardsvr será obrigatório ao iniciar um processo mongod.
Se for um servidor de configuração, o argumento --configsvr é obrigatório
Consulte o seguinte link para implantar
Implantar um cluster fragmentado