MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB като услуга на Windows и настройка на replicaSet

Можете да настроите набор от реплики и услуга MongoDB едновременно в Windows. Тъй като вече сте настроили набор от реплики, знаете, че трябва да имате директория с данни и регистрационен файл за всеки член на набора от реплики. Ако изпълнявате всички членове на набора от реплики на една машина, на всеки член на набора от реплики трябва да бъде присвоен различен номер на порт. Предоставената извадка е само за разработка или функционално тестване. Настройването на всички членове на набора реплики на една машина ще представлява единична точка на неизправност в допълнение към цялостното съпротивление на производителността.

Създайте конфигурационен файл за всеки член на набора от реплика, включително директория с данни, регистрационен файл, номер на порт и име на набор от реплика. Например, имам набор от реплика от 3 члена, един основен Mongodb работи на порт 27017 и два вторични, Mongodb1 на порт 37017 и Mongodb2 на порт 47017. Името на набора от реплика е rs1.

Ето конфигурационния файл, например 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

Ето конфигурационния файл за един от вторичните.

# 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

Следната връзка предоставя пълен списък с опции за конфигурационния файл:http://docs.mongodb.org/manual/reference/configuration-options/

Добавете и трите екземпляра на MongoDB като услуга на Windows. Тъй като не посочих екранното име на услугата и услугата, услугата MongoDB ще използва екранното име на услуга/услуга по подразбиране MongoDB

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

Инсталирайте другите два екземпляра на MongoDB с име на услугата и показвано име на услугата.

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

Стартирайте и трите екземпляра на 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.

Проверете състоянието и на трите услуги на Windows, като използвате командата sc с опция за заявка.

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

Конфигурирайте набор от реплики от обвивката на MongoDB. В следващия пример екземплярът на MongoDB на порт 27017 ще бъде основният член на набора от реплика.

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

Задайте конфигурация на набор от реплики от обвивката на MongoDB.

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

В обвивката на MongoDB инициализирайте набора от реплики и проверете състоянието му.

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

Можете също да проверите състоянието на вторичните. Тук се свързвам с един от вторичните елементи на порт 37017.

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

Следната подкана ще се появи в обвивката на MongoDB, показваща вторичното състояние.

rs1:SECONDARY>

Урок за внедряване на набор от реплики можете да намерите тук:https://docs.mongodb.com/manual/tutorial/deploy-replica-set/



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Пресичане на индекса на MongoDB

  2. MongoDB, MapReduce и сортиране

  3. MongoDb C# GeoNear конструиране на заявка

  4. Как се съхраняват данните в база данни MongoDB на диск?

  5. MongoDB има ли вграден REST интерфейс?