sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB jako služba Windows a nastavení replicaSet

V systému Windows můžete nastavit sadu replik a službu MongoDB současně. Protože jste již nastavili sadu replik, víte, že pro každého člena sady replik potřebujete datový adresář a soubor protokolu. Pokud provozujete všechny členy sady replik na jednom počítači, musí mít každý člen sady replik přiřazeno jiné číslo portu. Poskytnutý vzorek je určen pouze pro vývoj nebo funkční testování. Nastavení všech členů sady replik na jednom počítači bude představovat jediný bod selhání, kromě toho, že bude brzdit celkový výkon.

Vytvořte konfigurační soubor pro každého člena sady replik včetně datového adresáře, souboru protokolu, čísla portu a názvu sady replik. Například mám sadu replik 3 členů, jednu primární Mongodb běžící na portu 27017 a dvě sekundární, Mongodb1 na portu 37017 a Mongodb2 na portu 47017. Název sady replik je rs1.

Zde je konfigurační soubor například 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

Zde je konfigurační soubor pro jednu ze sekundárních komponent.

# 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

Následující odkaz poskytuje úplný seznam možností konfiguračního souboru:http://docs.mongodb.org/manual/reference/configuration-options/

Přidejte všechny tři instance MongoDB jako službu Windows. Protože jsem nespecifikoval zobrazovaný název služby a služby, služba MongoDB použije výchozí zobrazovaný název služby/služby MongoDB

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

Nainstalujte další dvě instance MongoDB s názvem služby a zobrazovaným názvem služby.

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

Spusťte všechny tři instance 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.

Ověřte stav všech tří služeb Windows pomocí příkazu sc s možností dotazu.

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

Nakonfigurujte sadu replik z prostředí MongoDB. V následujícím příkladu bude instance MongoDB na portu 27017 primárním členem sady replik.

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

Nastavte konfiguraci sady replik z prostředí MongoDB.

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

V prostředí MongoDB inicializujte sadu replik a ověřte její stav.

> 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>

Můžete také zkontrolovat stav sekundárních zařízení. Zde se připojuji k jedné ze sekundárních stanic na portu 37017.

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

Následující výzva se zobrazí v prostředí MongoDB a zobrazí sekundární stav.

rs1:SECONDARY>

Výukový program pro nasazení sady replik naleznete zde:https://docs.mongodb.com/manual/tutorial/deploy-replica-set/



  1. Jak mohu číst z Redis uvnitř MULTI bloku v Ruby?

  2. vyhledávání v agregaci mongodb

  3. Jedisové Mění sémantiku Redis?

  4. Podmínka dotazu MongoDb na porovnání 2 polí