MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB jako usługa systemu Windows i konfiguracja zestawu repliki

W systemie Windows można jednocześnie skonfigurować zestaw replik i usługę MongoDB. Ponieważ zestaw replik został już skonfigurowany, zdajesz sobie sprawę, że potrzebny jest katalog danych i plik dziennika dla każdego elementu zestawu replik. Jeśli wszystkie elementy zestawu replik są uruchamiane na jednym komputerze, każdy element zestawu replik musi mieć przypisany inny numer portu. Dostarczona próbka służy wyłącznie do testowania lub testowania funkcjonalnego. Skonfigurowanie wszystkich elementów zestawu replik na jednym komputerze będzie stanowić pojedynczy punkt awarii, a także całkowity spadek wydajności.

Utwórz plik konfiguracyjny dla każdego członka zestawu replik, w tym katalog danych, plik dziennika, numer portu i nazwę zestawu replik. Na przykład mam zestaw replik składający się z 3 elementów, jednego podstawowego Mongodb działającego na porcie 27017 i dwóch pomocniczych, Mongodb1 na porcie 37017 i Mongodb2 na porcie 47017. Nazwa zestawu replik to rs1.

Oto plik konfiguracyjny, na przykład Mongodb.

# mongod.conf

# data directory
dbpath=C:\data\db

# log file
logpath=C:\mongodb-win32-i386-2.4.4\log\mongo.log

logappend=true

#port number 
port=27017

#replica set name
replSet=rs1

Oto plik konfiguracyjny jednego z plików pomocniczych.

# mongo.conf

# data directory
dbpath=C:\data\db2

# log file
logpath=C:\mongodb-win32-i386-2.4.4\log2\mongo.log

logappend=true

# port number
port=47017

# replica set name
replSet=rs1

Poniższy link zawiera pełną listę opcji pliku konfiguracyjnego:http://docs.mongodb.org/manual/reference/configuration-options/

Dodaj wszystkie trzy instancje MongoDB jako usługę Windows. Ponieważ nie określiłem wyświetlanej nazwy usługi i usługi, usługa MongoDB użyje domyślnej wyświetlanej nazwy usługi/usługi MongoDB

C:\mongodb-2.4.4\bin>mongod --config C:\mongodb-2.4.4\mongod.cfg --install

Zainstaluj pozostałe dwie instancje MongoDB z nazwą usługi i wyświetlaną nazwą usługi.

C:\mongodb-2.4.4\bin>mongod --config C:\mongodb-2.4.4\mongod1.cfg --serviceName MongoDB1 --serviceDisplayName MongoDB1 --install
C:\mongodb-2.4.4\bin>mongod --config C:\mongodb-2.4.4\mongod2.cfg --serviceName MongoDB2 --serviceDisplayName MongoDB2 --install

Uruchom wszystkie trzy instancje MongDB

C:\mongodb-2.4.4\bin>net start mongodb
The Mongo DB service is starting.
The Mongo DB service was started successfully.

C:\mongodb-2.4.4\bin>net start mongodb1
The MongoDB1 service is starting.
The MongoDB1 service was started successfully.

C:\mongodb-2.4.4\bin>net start mongodb2
The MongoDB2 service is starting.
The MongoDB2 service was started successfully.

Sprawdź stan wszystkich trzech usług Windows za pomocą polecenia sc z opcją zapytania.

C:\mongodb-2.4.4\bin>sc query mongodb
C:\mongodb-2.4.4\bin>sc query mongodb1
C:\mongodb-2.4.4\bin>sc query mongodb2

Skonfiguruj zestaw replik z powłoki MongoDB. W poniższym przykładzie wystąpienie MongoDB na porcie 27017 będzie podstawowym elementem zestawu replik.

C:\mongodb-2.4.4\bin>mongo --port 27017

Ustaw konfigurację zestawu replik z powłoki MongoDB.

> config = { _id: "rs1", members:[
... { _id : 0, host : "localhost:27017"},
... { _id : 1, host : "localhost:37017"},
... { _id : 2, host : "localhost:47017"}
... ] }

W powłoce MongoDB zainicjuj zestaw replik i sprawdź jego stan.

> rs.initiate(config)
{
        "info" : "Config now saved locally.  Should come online in about a minute.",
        "ok" : 1
}
> rs.status()
{
        "set" : "rs1",
        "date" : ISODate("2013-07-02T18:40:27Z"),
        "myState" : 1,
        "members" : [
                {
                        "_id" : 0,
                        "name" : "localhost:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 651,
                        "optime" : {
                                "t" : 1372790393,
                                "i" : 1
                        },
                        "optimeDate" : ISODate("2013-07-02T18:39:53Z"),
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "localhost:37017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 31,
                        "optime" : {
                                "t" : 1372790393,
                                "i" : 1
                        },
                        "optimeDate" : ISODate("2013-07-02T18:39:53Z"),
                        "lastHeartbeat" : ISODate("2013-07-02T18:40:26Z"),
                        "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
                        "pingMs" : 0,
                        "syncingTo" : "localhost:27017"
                },
                {
                        "_id" : 2,
                        "name" : "localhost:47017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 31,
                        "optime" : {
                                "t" : 1372790393,
                                "i" : 1
                        },
                        "optimeDate" : ISODate("2013-07-02T18:39:53Z"),
                        "lastHeartbeat" : ISODate("2013-07-02T18:40:26Z"),
                        "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
                        "pingMs" : 0,
                        "syncingTo" : "localhost:27017"
                }
        ],
        "ok" : 1
}
rs1:PRIMARY>

Możesz także sprawdzić status części wtórnych. Tutaj łączę się z jednym z serwerów pomocniczych na porcie 37017.

C:\mongodb-2.4.4\bin>mongo --port 37017

Poniższy monit pojawi się w powłoce MongoDB, pokazując stan drugorzędny.

rs1:SECONDARY>

Samouczek dotyczący wdrażania zestawu replik można znaleźć tutaj:https://docs.mongodb.com/manual/tutorial/deploy-replica-set/



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoNetworkError:nie udało się połączyć z serwerem [localhost:27017] przy pierwszym połączeniu [MongoNetworkError:connect ECONNREFUSED 127.0.0.1:27017]

  2. Czy istnieje sposób, aby uniemożliwić MongoDB dodawanie liczby mnogiej do nazw kolekcji?

  3. Pobieranie znacznika czasu z identyfikatora mongodb

  4. Jak używać wiosennych danych mongo @CompoundIndex z podkolekcjami?

  5. Wymuś mongodb, aby wyświetlał ścisły JSON