sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB som Windows-service og opsætning af replicaSet

Du kan konfigurere replikasæt og MongoDB-tjeneste på samme tid på Windows. Da du allerede har opsat et replikasæt, er du opmærksom på, at du skal have en datamappe og en logfil for hvert replikasætmedlem. Hvis du kører alle replikasætmedlemmer på en enkelt maskine, skal hvert replikasætmedlem tildeles et andet portnummer. Den leverede prøve er kun til udvikling eller funktionel testning. Opsætning af alle replikasætmedlemmer på en enkelt maskine vil udgøre et enkelt fejlpunkt ud over at være et totalt træk i ydeevnen.

Opret en konfigurationsfil for hvert replikasætmedlem inklusive databibliotek, logfil, portnummer og replikasætnavn. For eksempel har jeg et replikasæt med 3 medlemmer, en primær Mongodb kører på port 27017 og to sekundær, Mongodb1 på port 37017 og Mongodb2 på port 47017. Replikasættets navn er rs1.

Her er konfigurationsfilen for eksempel 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

Her er konfigurationsfilen for en af ​​de sekundære.

# 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

Følgende link giver en komplet liste over konfigurationsfilindstillinger:http://docs.mongodb.org/manual/reference/configuration-options/

Tilføj alle tre MongoDB-forekomster som Windows-tjeneste. Da jeg ikke specificerede tjenesten og tjenestens visningsnavn, vil MongoDB-tjenesten bruge standardtjenesten/tjenestens visningsnavn MongoDB

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

Installer de to andre MongoDB-instanser med tjenestenavn og tjenestevisningsnavn.

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

Start alle tre forekomster af 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.

Bekræft status for alle tre Windows-tjenester ved hjælp af sc-kommandoen med forespørgselsindstilling.

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

Konfigurer replikasæt fra MongoDB shell. I det følgende eksempel vil MongoDB-instansen på port 27017 være det primære replikasætmedlem.

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

Indstil replika sæt konfiguration fra MongoDB shell.

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

I MongoDB shell, initialiser replikasættet og bekræft dets status.

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

Du kan også tjekke status for sekundærerne. Her forbinder jeg til en af ​​de sekundære på port 37017.

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

Følgende prompt vises i MongoDB shell, der viser den sekundære status.

rs1:SECONDARY>

En selvstudie om implementering af et replikasæt kan findes her:https://docs.mongodb.com/manual/tutorial/deploy-replica-set/



  1. Sådan opretter du bønnen til FindByIndexNameSessionRepository

  2. hvordan man strukturerer et sammensat indeks i mongodb

  3. Skal jeg bruge redis til at gemme et stort antal binære filer?

  4. Custom Cascading i Spring Data MongoDB