2013-05-15 1 views
0

Я новичок в mongo db и хочу настроить набор реплик. Я смущен, хотя как могу это достичь.Настройка наборов реплик mongodb

Я хочу иметь первичный, вторичный и арбитр из трех разных машин, каждый из которых работает с манго.

Я пытаюсь настроить его, но сделал беспорядок из этого, я думаю! Как я могу удалить любые наборы/конфигурации реплик, которые у меня есть?

Я установил Монго, и указал каждый экземпляр Монго в конфигурационном файле, как это:

logpath=D:\mongodb\log\mongo.log 
logappend=true 
dbpath=D:\mongodb\data 
directoryperdb=true 
port = 27017 
replSet = rsMySet 

Отсюда, хотя, я не уверен, что делать. Я прочитал несколько статей, примеров и т. Д., Но все запутывает.

Может ли кто-нибудь предоставить пошаговые инструкции о том, как это можно сделать?

Кроме того, я хочу подключиться к этому набору реплик из веб-приложения C#. На что должна ссылаться строка подключения? первичный, вторичный или как он работает? Кроме того, какой пользователь должен использовать для доступа к манго? Я использую интегрированную защиту при доступе к серверу sql, здесь же возможно?

Спасибо, Найла

ответ

2

Вот основные шаги, которые я затем, чтобы создать реплику установки в моей локальной машине.

Step 1 : 

Start all mongods with replSet argument 

mongod --replSet SriReplSet --dbpath /Volumes/Data/Replica-DBS/1 --port 27001 --logpath /Volumes/Data/Replica-DBS/log/log.1 --logappend --fork 
mongod --replSet SriReplSet --dbpath /Volumes/Data/Replica-DBS/2 --port 27002 --logpath /Volumes/Data/Replica-DBS/log/log.2 --logappend --fork 
mongod --replSet SriReplSet --dbpath /Volumes/Data/Replica-DBS/3 --port 27003 --logpath /Volumes/Data/Replica-DBS/log/log.3 --logappend --fork 

"SriReplSet" - это название вашей реплики. Очевидно, что dbpath и порт будут меняться в соответствии с вашей конфигурацией.

Я планирую сделать первый (с номером порта 27001) в качестве основного. Итак, вошел в первый mongod и установил мою конфигурацию, как показано ниже. Обратите внимание, что я использую localhost, поскольку все на моей локальной машине.

Step 2 : 
>x={ 
    _id :"SriReplSet", 
    members : [ 
     {_id : 0, host :"localhost:27001"}, 
     {_id : 1, host :"localhost:27002"}, 
     {_id : 2, host :"localhost:27003"}, 
    ] 
} 

> rs.initiate(x) 
{ 
    "info" : "Config now saved locally. Should come online in about a minute.", 
    "ok" : 1 
} 

Над командой будет инициировать набор реплик и появится сообщение о том, «Config теперь сохраняются локально. Если прийти в Интернете примерно через минуту.» и вы сделали :)

Step 3 : 

SriReplSet:PRIMARY> rs.status() 
{ 
    "set" : "SriReplSet", 
    "date" : ISODate("2013-05-16T05:35:18Z"), 
    "myState" : 1, 
    "members" : [ 
     { 
      "_id" : 0, 
      "name" : "localhost:27001", 
      "health" : 1, 
      "state" : 1, 
      "stateStr" : "PRIMARY", 
      "uptime" : 370, 
      "optime" : Timestamp(1368682493000, 1), 
      "optimeDate" : ISODate("2013-05-16T05:34:53Z"), 
      "self" : true 
     }, 
     { 
      "_id" : 1, 
      "name" : "localhost:27002", 
      "health" : 1, 
      "state" : 2, 
      "stateStr" : "SECONDARY", 
      "uptime" : 20, 
      "optime" : Timestamp(1368682493000, 1), 
      "optimeDate" : ISODate("2013-05-16T05:34:53Z"), 
      "lastHeartbeat" : ISODate("2013-05-16T05:35:18Z"), 
      "pingMs" : 0 
     }, 
     { 
      "_id" : 2, 
      "name" : "localhost:27003", 
      "health" : 1, 
      "state" : 5, 
      "stateStr" : "STARTUP2", 
      "uptime" : 18, 
      "optime" : Timestamp(0, 0), 
      "optimeDate" : ISODate("1970-01-01T00:00:00Z"), 
      "lastHeartbeat" : ISODate("2013-05-16T05:35:17Z"), 
      "pingMs" : 736 
     } 
    ], 
    "ok" : 1 
} 

Обратите внимание, что первый из них является первичным.

Я не парень из C#, но в Java мы можем подключиться к набору реплик с использованием драйвера Java (в основном это относится к C#, я думаю), передав несколько списков ServerAddress для конструктора Mongo. Драйверы осведомлены о репликах, они будут соответственно изменяться, если первичные изменения.

По умолчанию все операции чтения и записи будут выполняться на основном. Надеюсь, это поможет :)

1

Выполните действия, описанные здесь: http://docs.mongodb.org/manual/tutorial/deploy-replica-set/#deploy-a-development-or-test-replica-set

Способ удаление каких-либо ошибочные конфигураций будет падать «локальные» базы данных.

> use local 
> db.dropDatabase() 

Много примеров, как подключиться к набору реплик здесь: http://docs.mongodb.org/manual/reference/connection-string/#standard-connection-string-format