2017-10-02 7 views
0

J'ai une configuration actuelle dans laquelle j'ai 2 serveurs de configuration et 2 fragments et 1 routeur. Je peux voir à partir des journaux sur chacun d'eux qu'ils sont tous connectés.
Maintenant, j'ai créé une nouvelle base de données appelée 'testdb'. J'ai activé sharding sur 'testdb' et essayé d'insérer dans une collection dans 'testdb'. Quand j'essaye ça, j'ai une erreur. Une autre chose étrange est que je ne vois pas la base de données 'testdb' quand j'essaye 'show dbs'. Voici une vue du terminal.Erreur lors de l'insertion dans la base de données mongodb ombrée

mongos> use testdb 
switched to db testdb 
mongos> sh.enableSharding("testdb") 
{ "ok" : 1 } 
mongos> sh.status() 
--- Sharding Status --- 
    sharding version: { 
    "_id" : 1, 
    "minCompatibleVersion" : 5, 
    "currentVersion" : 6, 
    "clusterId" : ObjectId("59d1c43767d73804222be772") 
} 
    shards: 
    { "_id" : "ReplicaSet", "host" : "ReplicaSet/192.168.1.3:20011,192.168.1.3:20012", "state" : 1 } 
    active mongoses: 
    "3.4.1" : 1 
autosplit: 
    Currently enabled: yes 
    balancer: 
    Currently enabled: yes 
    Currently running: no 
     Balancer lock taken at Mon Oct 02 2017 10:14:40 GMT+0530 (IST) by ConfigServer:Balancer 
    Failed balancer rounds in last 5 attempts: 0 
    Migration Results for the last 24 hours: 
     No recent migrations 
    databases: 
    { "_id" : "testdb", "primary" : "ReplicaSet", "partitioned" : true } 

mongos> db.testcoll.insert({_id:1,name:"testvalue"}) 
WriteResult({ 
    "nInserted" : 0, 
    "writeError" : { 
     "code" : 193, 
     "errmsg" : "Cannot accept sharding commands if not started with --shardsvr" 
    } 
}) 
mongos> show dbs 
admin 0.000GB 
config 0.000GB 
mongos> db 
testdb 

L'état des serveurs de configuration sont:

ReplicaSet:PRIMARY> rs.status() 
{ 
    "set" : "ReplicaSet", 
    "date" : ISODate("2017-10-02T05:33:42.973Z"), 
    "myState" : 1, 
    "term" : NumberLong(1), 
    "configsvr" : true, 
    "heartbeatIntervalMillis" : NumberLong(2000), 
    "optimes" : { 
     "lastCommittedOpTime" : { 
      "ts" : Timestamp(1506922413, 1), 
      "t" : NumberLong(1) 
     }, 
     "readConcernMajorityOpTime" : { 
      "ts" : Timestamp(1506922413, 1), 
      "t" : NumberLong(1) 
     }, 
     "appliedOpTime" : { 
      "ts" : Timestamp(1506922413, 1), 
      "t" : NumberLong(1) 
     }, 
     "durableOpTime" : { 
      "ts" : Timestamp(1506922413, 1), 
      "t" : NumberLong(1) 
     } 
    }, 
    "members" : [ 
     { 
      "_id" : 0, 
      "name" : "192.168.1.3:20002", 
      "health" : 1, 
      "state" : 1, 
      "stateStr" : "PRIMARY", 
      "uptime" : 3048, 
      "optime" : { 
       "ts" : Timestamp(1506922413, 1), 
       "t" : NumberLong(1) 
      }, 
      "optimeDate" : ISODate("2017-10-02T05:33:33Z"), 
      "electionTime" : Timestamp(1506919478, 1), 
      "electionDate" : ISODate("2017-10-02T04:44:38Z"), 
      "configVersion" : 1, 
      "self" : true 
     }, 
     { 
      "_id" : 1, 
      "name" : "192.168.1.3:20003", 
      "health" : 1, 
      "state" : 2, 
      "stateStr" : "SECONDARY", 
      "uptime" : 2954, 
      "optime" : { 
       "ts" : Timestamp(1506922413, 1), 
       "t" : NumberLong(1) 
      }, 
      "optimeDurable" : { 
       "ts" : Timestamp(1506922413, 1), 
       "t" : NumberLong(1) 
      }, 
      "optimeDate" : ISODate("2017-10-02T05:33:33Z"), 
      "optimeDurableDate" : ISODate("2017-10-02T05:33:33Z"), 
      "lastHeartbeat" : ISODate("2017-10-02T05:33:42.557Z"), 
      "lastHeartbeatRecv" : ISODate("2017-10-02T05:33:42.557Z"), 
      "pingMs" : NumberLong(0), 
      "syncingTo" : "192.168.1.3:20002", 
      "configVersion" : 1 
     } 
    ], 
    "ok" : 1 
} 

L'état des tessons:

ReplicaSet:PRIMARY> rs.status() 
{ 
    "set" : "ReplicaSet", 
    "date" : ISODate("2017-10-02T05:39:08.968Z"), 
    "myState" : 1, 
    "term" : NumberLong(1), 
    "heartbeatIntervalMillis" : NumberLong(2000), 
    "optimes" : { 
     "lastCommittedOpTime" : { 
      "ts" : Timestamp(1506922743, 1), 
      "t" : NumberLong(1) 
     }, 
     "appliedOpTime" : { 
      "ts" : Timestamp(1506922743, 1), 
      "t" : NumberLong(1) 
     }, 
     "durableOpTime" : { 
      "ts" : Timestamp(1506922743, 1), 
      "t" : NumberLong(1) 
     } 
    }, 
    "members" : [ 
     { 
      "_id" : 0, 
      "name" : "192.168.1.3:20011", 
      "health" : 1, 
      "state" : 1, 
      "stateStr" : "PRIMARY", 
      "uptime" : 3355, 
      "optime" : { 
       "ts" : Timestamp(1506922743, 1), 
       "t" : NumberLong(1) 
      }, 
      "optimeDate" : ISODate("2017-10-02T05:39:03Z"), 
      "electionTime" : Timestamp(1506919442, 1), 
      "electionDate" : ISODate("2017-10-02T04:44:02Z"), 
      "configVersion" : 1, 
      "self" : true 
     }, 
     { 
      "_id" : 1, 
      "name" : "192.168.1.3:20012", 
      "health" : 1, 
      "state" : 2, 
      "stateStr" : "SECONDARY", 
      "uptime" : 3317, 
      "optime" : { 
       "ts" : Timestamp(1506922743, 1), 
       "t" : NumberLong(1) 
      }, 
      "optimeDurable" : { 
       "ts" : Timestamp(1506922743, 1), 
       "t" : NumberLong(1) 
      }, 
      "optimeDate" : ISODate("2017-10-02T05:39:03Z"), 
      "optimeDurableDate" : ISODate("2017-10-02T05:39:03Z"), 
      "lastHeartbeat" : ISODate("2017-10-02T05:39:08.532Z"), 
      "lastHeartbeatRecv" : ISODate("2017-10-02T05:39:07.254Z"), 
      "pingMs" : NumberLong(0), 
      "syncingTo" : "192.168.1.3:20011", 
      "configVersion" : 1 
     } 
    ], 
    "ok" : 1 
} 

Où vais-je tort?

Répondre

0

J'ai finalement trouvé la réponse. L'erreur était que j'avais le même nom de jeu de réplicas pour tous les serveurs de configuration et aussi les serveurs de partition. Dans cette situation, le routeur essayait d'insérer des documents dans le serveur de configuration et non dans le serveur de partition, d'où l'erreur que le serveur n'était pas démarré avec l'option --shardsvr.