Вы можете настроить набор реплик и службу MongoDB одновременно в Windows. Поскольку вы уже настроили набор реплик, вам известно, что вам нужно иметь каталог данных и файл журнала для каждого члена набора реплик. Если вы используете все элементы набора реплик на одной машине, каждому члену набора реплик должен быть присвоен другой номер порта. Образец предоставляется только для разработки или функционального тестирования. Настройка всех элементов набора реплик на одной машине будет составлять единую точку отказа в дополнение к общему снижению производительности.
Создайте файл конфигурации для каждого члена набора реплик, включая каталог данных, файл журнала, номер порта и имя набора реплик. Например, у меня есть набор реплик из 3 членов, один основной Mongodb, запущенный на порту 27017, и два вторичных, Mongodb1 на порт 37017 и Mongodb2 на порт 47017. Имя набора реплик - rs1.
Вот конфигурационный файл, например Mongodb.
# mongod.cong
# 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, с помощью команды подкожно с опцией запроса.
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>
Я думаю, что это принадлежит http://dba.stackexchange.com. Это не вопрос, связанный с программированием. –
Я добавил теги «DBA» и «replication» для этого вопроса. – jmrio