Pytanie Dodawanie członków do zestawu replik w MongoDb


Próbuję utworzyć zestaw replik z MongoDb, nazwy hostów serwerów to:

nazwa hosta nazwa-hosta-1 nazwa-hosta-2

Każdy z nich ma wszystkie odpowiednie nazwy hostów wyszczególnione w pliku / etc / hosts (wszystkie działają z 64-bitowym systemem Ubuntu 10.04)

Kiedy robię rs.initiate na jednym węźle wszystko wydaje się zacząć dobrze. Uruchomienie rs.status (); przedstawia:

{
    "set" : "vega",
    "date" : ISODate("2012-01-22T19:15:55Z"),
    "myState" : 1,
    "members" : [
        {
            "_id" : 0,
            "name" : "hostname:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "optime" : {
                "t" : 1327254848000,
                "i" : 1
            },
            "optimeDate" : ISODate("2012-01-22T17:54:08Z"),
            "self" : true
        }
    ],
    "ok" : 1
}

Problem pojawia się, gdy próbuję dodać nowego członka do zestawu replik. Używam polecenia rs.add (hostname-1); i pojawia się następujący błąd:

{
    "assertion" : "need most members up to reconfigure, not ok : vega-1:27017",
    "assertionCode" : 13144,
    "errmsg" : "db assertion failure",
    "ok" : 0
}

Próbowałem wielu kombinacji używania nazwy hosta, adresu IP, zarówno z numerem portu, jak i bez niego, i zawsze mam ten sam problem. Nazwa hosta działa, próbowałem ping hostname-1 i działa dobrze.

Czy ktoś ma jakieś pomysły, co może być przyczyną tego problemu?

Niestety w dokumentacji Mongo nie ma przykładów konfiguracji zestawu replik w scenariuszu realnym, wykorzystującym tylko trzy instancje na tym samym komputerze, co jest oczywiście bezużyteczne.

Z góry dziękuję za pomoc!


19
2018-01-22 19:22


pochodzenie


Pierwsze miejsce, które chciałbym wyszukać, znajduje się w pliku "mongodb.log" dla każdego serwera. Prawdopodobnie kilka dobrych wskazówek na temat (a) tego, czy serwery w ogóle ze sobą rozmawiają, a jeśli tak, (b) to, co główny serwer znajduje budzące zastrzeżenia zastrzeżenia dotyczące stolarza. - dampier


Odpowiedzi:


Usuń to w swojej konfiguracji:

bind_ip = 127.0.0.1

Ta opcja jest obecnie niezgodna z zestawami replik mongodb.


14
2017-12-03 22:13



lub ustaw go na bind_ip = 0.0.0.0 - Greg Bacchus


Ten błąd występuje, gdy dodajesz węzły, które nie są jeszcze "up" (jeszcze). Wygląda na to, że "hostname-1" jest nieosiągalne (nie w / etc / hosts, bez DNS) lub jest osiągalne, ale nie działa mongodb z replSet zestaw parametrów konfiguracyjnych


10
2017-07-12 02:54





{
    "errmsg": "wyjątek: potrzeba większości członków do rekonfiguracji, nie jest dobrze: serwer2: 27017",
    "kod": 13144,
    "ok": 0
}

Napotkałem powyższy błąd w Mongo 2.4.9. Mój błąd polega na tym, że nie sprecyzowałem replSet  w konfiguracji mongo nowego członka repliki. rs.add("server2:27017") działał dobrze później.


3
2018-01-17 10:09





Niestety w dokumentacji Mongo nie ma przykładów konfiguracji zestawu replik w scenariuszu realnym, wykorzystującym tylko trzy instancje na tym samym komputerze, co jest oczywiście bezużyteczne.

Zgoda, jest dość uboga. Ten przykład powinien zostać całkowicie usunięty z dokumentów.

Istnieje inny sposób na rozpoczęcie zestawu replik i to za pomocą rs.configure() dowództwo. Można również określić wszystkie trzy węzły jednocześnie, a następnie wydać rs.inititiate().

Spójrz tutaj na przykład określenie wszystkich węzłów przed rozpoczęciem.

Spójrz tutaj po więcej szczegółów na temat różnych poleceń.


2
2018-01-23 08:45





podobny problem miałem, rozwiązaniem było mieć plik klucza. http://docs.mongodb.org/manual/tutorial/deploy-replica-set-with-auth/#create-the-key-file-to-be-used-by--ieach-member-of-the-pl/pl -zestaw


2
2017-09-04 18:51



Huh? Jest plik klucza niezbędny, czy też rozwiązanie było efektem ubocznym? - Tejas Manohar
plik klucza jest niezbędny w wersjach nowszych niż 2 - Shimon Doodkin
Właściwie to otrzymałem rozwiązanie działające wczoraj bez pliku klucza - Tejas Manohar
dobry .......................... - Shimon Doodkin


Konieczne może być sprawdzenie, czy mongia działa na drugim węźle przed dodaniem drugiego węzła do węzła1. Jeśli działa on rs.add (), a następnie sprawdź rs.status ().


0
2018-03-03 15:45