2015-05-18 8 views
7

मैं मोंगोडीबी 3.0.1 संस्करण का उपयोग कर रहा हूं। मैं हमारी मशीन में mongodb replicaiton के लिए सेटअप करने का प्रयास कर रहा हूं। मैंने प्रतिकृति के लिए सेप्टेट मशीन में तीन मोंगोडब का उपयोग किया है।मोंगोडीबी 3.0.1 प्रतिकृति सेटअप

machine1 - master 
machine2 - slave 
machine3 - slave 

मैं इस यूआरएल उल्लेख http://docs.mongodb.org/manual/tutorial/deploy-replica-set/

मैं mongodb.conf फ़ाइल में हर मशीन के लिए कॉन्फ़िगर है

replSet = rs1 
fork = true 

और मैं इस आदेश

rs.add(192.168.1.2) 
rs.add(192.168.1.3) 
का उपयोग कर मास्टर मशीन में दो सदस्यों को जोड़ा

लेकिन मैं मास्टर मशीन में एक दस्तावेज़ डालता हूं लेकिन अन्य दो स्लॉ को दोहराना नहीं मशीन मैंने दास मशीन को निम्नलिखित त्रुटि

> show dbs 
2015-05-18T12:43:22.020+0530 E QUERY Error: listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" } 
    at Error (<anonymous>) 
    at Mongo.getDBs (src/mongo/shell/mongo.js:47:15) 
    at shellHelper.show (src/mongo/shell/utils.js:630:33) 
    at shellHelper (src/mongo/shell/utils.js:524:36) 
    at (shellhelp2):1:1 at src/mongo/shell/mongo.js:47 
> 
> rs.conf() 
2015-05-18T12:43:38.692+0530 E QUERY Error: Could not retrieve replica set config: { 
    "info" : "run rs.initiate(...) if not yet done for the set", 
    "ok" : 0, 
    "errmsg" : "no replset config has been received", 
    "code" : 94 
} 
    at Function.rs.conf (src/mongo/shell/utils.js:1011:11) 
    at (shell):1:4 at src/mongo/shell/utils.js:1011 
> 

कृपया समस्या को हल करने में मेरी सहायता करें। धन्यवाद & अग्रिम।

संपादित करें:

rs1:PRIMARY> rs.conf() 
{ 
    "_id" : "rs1", 
    "version" : 4, 
    "members" : [ 
     { 
      "_id" : 0, 
      "host" : "analyzer-xubuntu:27017", 
      "arbiterOnly" : false, 
      "buildIndexes" : true, 
      "hidden" : false, 
      "priority" : 1, 
      "tags" : { 

      }, 
      "slaveDelay" : 0, 
      "votes" : 1 
     }, 
     { 
      "_id" : 1, 
      "host" : "192.168.1.31:27017", 
      "arbiterOnly" : false, 
      "buildIndexes" : true, 
      "hidden" : false, 
      "priority" : 0.75, 
      "tags" : { 

      }, 
      "slaveDelay" : 0, 
      "votes" : 1 
     }, 
     { 
      "_id" : 2, 
      "host" : "192.168.1.33:27017", 
      "arbiterOnly" : false, 
      "buildIndexes" : true, 
      "hidden" : false, 
      "priority" : 0.5, 
      "tags" : { 

      }, 
      "slaveDelay" : 0, 
      "votes" : 1 
     } 
    ], 
    "settings" : { 
     "chainingAllowed" : true, 
     "heartbeatTimeoutSecs" : 10, 
     "getLastErrorModes" : { 

     }, 
     "getLastErrorDefaults" : { 
      "w" : 1, 
      "wtimeout" : 0 
     } 
    } 
} 

rs1:PRIMARY> rs.status() 
{ 
    "set" : "rs1", 
    "date" : ISODate("2015-05-18T09:07:31.767Z"), 
    "myState" : 1, 
    "members" : [ 
     { 
      "_id" : 0, 
      "name" : "analyzer-xubuntu:27017", 
      "health" : 1, 
      "state" : 1, 
      "stateStr" : "PRIMARY", 
      "uptime" : 9236, 
      "optime" : Timestamp(1431939509, 2), 
      "optimeDate" : ISODate("2015-05-18T08:58:29Z"), 
      "electionTime" : Timestamp(1431931054, 2), 
      "electionDate" : ISODate("2015-05-18T06:37:34Z"), 
      "configVersion" : 4, 
      "self" : true 
     }, 
     { 
      "_id" : 1, 
      "name" : "192.168.1.31:27017", 
      "health" : 1, 
      "state" : 0, 
      "stateStr" : "STARTUP", 
      "uptime" : 8953, 
      "optime" : Timestamp(0, 0), 
      "optimeDate" : ISODate("1970-01-01T00:00:00Z"), 
      "lastHeartbeat" : ISODate("2015-05-18T09:07:29.831Z"), 
      "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"), 
      "pingMs" : 1, 
      "configVersion" : -2 
     }, 
     { 
      "_id" : 2, 
      "name" : "192.168.1.33:27017", 
      "health" : 1, 
      "state" : 0, 
      "stateStr" : "STARTUP", 
      "uptime" : 8946, 
      "optime" : Timestamp(0, 0), 
      "optimeDate" : ISODate("1970-01-01T00:00:00Z"), 
      "lastHeartbeat" : ISODate("2015-05-18T09:07:30.533Z"), 
      "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"), 
      "pingMs" : 1, 
      "configVersion" : -2 
     } 
    ], 
    "ok" : 1 
} 
+0

'" रन rs.initiate (...) अगर सेट के लिए अभी तक नहीं किया गया है "। क्या तुमने वह किया? – mnemosyn

+0

हां मैंने मास्टर मशीन में rs.initiate() कमांड डाला है। – Elango

+0

मुझे एक संदेह है "rs.initiate()" कमांड मास्टर मशीन या अन्य दो दास मशीन – Elango

उत्तर

12

हमें चरण दर चरण चलते हैं।

आपकी मोंगोडीबी कॉन्फ़िगरेशन ठीक है, बाकी का काम खोल में किया जा सकता है। मैं आईपी के बजाय मशीन नामों का उपयोग करूंगा। द्वितीयक पर

> conf = { 
      _id: "rs1", 
      members: 
         [ 
         {_id : 0, host : "machine1:27017"}, 
         {_id : 1, host : "machine2:27017"}, 
         {_id : 2, host : "machine3:27017"} 
         ] 
     } 
> rs.initiate(conf) 

तो बस चलाने rs.slaveOk():

पहले machine1 से कनेक्ट है, और वहाँ निम्नलिखित चलाते हैं। secondaries प्रतिकृति शुरू कर देगा, और आप उन्हें पूछने में सक्षम होंगे और primary से डाले गए अपने डेटा को देख पाएंगे।

+0

मैं निम्नलिखित त्रुटि को पुनः प्राप्त कर रहा हूं> db.test.find() त्रुटि: त्रुटि: {"$ त्रुटि": "मास्टर और दास ओके = झूठी", "कोड": 13435} > rs.slaveOk() > db.test।लगता है() त्रुटि: त्रुटि: { \t "$ अं": "गुरु नहीं या माध्यमिक वर्तमान में इस replSet सदस्य से नहीं पढ़ सकते हैं", \t "कोड": 13436 } – Elango

+0

आप चलाने के 'rs.add किया (। ..) '** के बाद ** चल' rs.initiate() '? – bagrat

+0

हाँ मैं पहले "rs.initiate()" चलाता हूं, फिर "rs.add (" machine2: 27017 ") चलाता है" – Elango

संबंधित मुद्दे