2015-04-20 14 views
8

Po zainstalowaniu MongoDB, wpadłem mongod zSingle Instance MongoDB Replica Set - nie można wykonać Query/operacje wstawiania

mongod --dbpath <pathtodb> --logpath <pathtolog> --replSet rs0 

I wtedy połączony z powłoką Mongo i pobiegł

rs.initiate() 

Potem próbował wstaw dokument do kolekcji, ale otrzymał błąd:

> db.blah.insert({a:1}) 
WriteResult({ "writeError" : { "code" : undefined, "errmsg" : "not master" } }) 

Lo oking na rs.status() widzę status jest REMOVED:

 
> rs.status() 
{ 
     "state" : 10, 
     "stateStr" : "REMOVED", 
     "uptime" : 1041, 
     "optime" : Timestamp(1429037007, 1), 
     "optimeDate" : ISODate("2015-04-14T18:43:27Z"), 
     "ok" : 0, 
     "errmsg" : "Our replica set config is invalid or we are not a member of it", 
     "code" : 93 
} 

nie mam pojęcia, co mogłem zrobić bałagan to. Ten powinien zadziałało, jak sądzę. Jak przejść przez to?

+0

Jest tylko jeden członek zestawu replik. Próbuję użyć go jako zestawu replik, dzięki czemu mogę zmienić oplog i zobaczyć zmiany w momencie ich wystąpienia. –

+0

Ponieważ jest to tylko konfiguracja testowa, wymaż ją i zacznij od początku. Coś zostało zrobione, aby zepsuć to, ale nie możemy powiedzieć co, nie widząc przynajmniej rs.conf(). – wdberkeley

+0

Hrmm. to wydawało się działać. Nie ma pojęcia, co dokładnie spowodowało problem. Działa teraz ... –

Odpowiedz

5

Problem polega na tym, że uruchomiono rs.initiate() .. Jako PUSTY! Nie powiedzieliście, jakie maszyny należą do tego zestawu replik.

Więc ..

rs.initiate({ 
     _id: "rs0", 
     version: 1, 
     members: [ 
     { _id: 0, host : "address.to.this.machine:27017" } 
     ] 
    } 
) 
+0

Puste 'rs.initiate()' jest w porządku, po prostu musisz to zrobić za pomocą np. 'rs.add (" db.example.com ")' – Madbreaks

0

Jestem również stoi sam problem, próbowałem poniżej krokach

UWAGA: Jeśli masz już konfiguracji klastra śledzić moje kroki

  • Zatrzymałem określony serwer (host: "address.to.this.machine: 27017")
  • Usuń mongod.lock plik
  • utworzyć jeden katalog danych - (deafult:/data/db, nowy katalog danych:/data/db_rs0)

  • Aktualizacja ** ** plik konfiguracyjny -change dbpath ("/ data/db_rs0"), - sprawdź bindIP (domyślnie: 127.0.0.0 do 0.0.0.0)

  • Sprawdź hosta & Gospodarze

    hostname

    sudo vi /etc/hosts

dodać do hostów

  127.0.0.0 hostname 

     127.0.1.1 hostname 

     (add your Public/Private IP) hostname 
  • Uruchom serwer MongoDB w

    sudo/usr/bin/mongod -f /etc/mongod.conf &

rs.initiate({ _id: "rs0", members: [ { _id: 0, host : "hostname:27017" } ] })

rs.status()

{

....

"członków": [

{ 

    "_id": 0, 

    "name": "hostname:27017", 

    "health": 1, 

    "state": 1, 

    "stateStr": "PRIMARY", 

    "uptime": 98231, 

    "optime": { 

    "ts": Timestamp(1474963880, 46), 

    "t": NumberLong(339) 
    }, 

    "optimeDate": ISODate("2016-09-27T08:11:20Z"), 

    "electionTime": Timestamp(1474956813, 1), 

    "electionDate": ISODate("2016-09-27T06:13:33Z"), 

    "configVersion": 12, 

    "self": true 
}, 

...........

]

"OK": 1

}

-------- DZIĘKUJEMY --------

+0

Adres lokalnego hosta to 127.0.0.1, a nie 127.0.0.0. Mówisz o klastrze, kiedy naprawdę masz na myśli zestaw replik ... ;-) – JJussi