J'ai 4 serveurs dans un environnement de test que j'utilise pour tester la réplication et la distribution MongoDB: RepSetA contient RepSetA1 et RepSetA2. RepSetB contient RepSetB1 et RepSetB2. Tous les serveurs agissent comme des routeurs, RepSetA1 agit comme un seul serveur de configuration. J'ai des données "Player" (10 000 enregistrements, l'objet est constitué d'un champ "Id" et un champ "Name"), et je veux qu'il soit partagé (ou distribué) entre les jeux de réplicas, et cloné parmi les serveurs dans le même jeu de réplicas. Donc, juste pour un exemple simple: Player1-5000: Existe à la fois dans RepSetA1 et RepSetA2, mais pas dans RepSetB1 et RepSetB2. Player5000-10000: Existe à la fois dans RepSetB1 et RepSetB2, mais pas dans RepSetA1 et RepSetA2.MongoDB réplique les données dans toutes les partitions
Ce que je reçois à la place, c'est d'avoir tous les joueurs dans les 4 serveurs.
Si j'imprimer l'état sharding, je reçois le texte suivant:
mongos> db.printShardingStatus();
--- Sharding Status ---
sharding version: { "_id" : 1, "version" : 3 }
shards:
{ "_id" : "RepSetA", "host" : "RepSetA/MongoRepSetA1:27018,MongoRepSetA2:27018" }
{ "_id" : "RepSetB", "host" : "RepSetB/MongoRepSetB1:27018,MongoRepSetB2:27018" }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "GamesDB", "partitioned" : true, "primary" : "RepSetA" }
GamesDB.Player chunks:
RepSetA 2
{ "_id" : { $minKey : 1 } } -->> { "_id" : 0 } on : RepSetA { "t" : 1000, "i" : 1 }
{ "_id" : 0 } -->> { "_id" : { $maxKey : 1 } } on : RepSetA { "t" : 1000, "i" : 2 }
{ "_id" : "test", "partitioned" : false, "primary" : "RepSetB" }
{ "_id" : "EOO", "partitioned" : false, "primary" : "RepSetB" }
J'ai utilisé les commandes suivantes pour construire les tessons:
db.adminCommand({ addShard : "RepSetA/MongoRepSetA1:27018,MongoRepSetA2:27018" })
db.adminCommand({ addShard : "RepSetB/MongoRepSetB1:27018,MongoRepSetB2:27018" })
db.runCommand({ enablesharding : "GamesDB" });
db.runCommand({ shardcollection : "GamesDB.Player", key : { _id :1 } , unique : true});
Qu'est-ce que je fais mal?
Comment avez-vous demandé à voir quels joueurs existent sur quel fragment? –
en utilisant MongoVue GUI, et même essayé de se connecter au serveur spécifique et effectuer un "db.Player.find(). Limite (100);" – nirpi