2013-05-15 3 views
0

저는 mongo db의 초보자이며 복제본 세트를 설정하려고합니다. 나는 이것을 어떻게 달성 할 수 있는지 혼란 스럽다.mongodb 복제본 세트를 설정하십시오

나는 3 개의 다른 기계의 1 차, 2 차 및 중재자가 있고, 각각은 몽고를 실행하고 싶다.

나는 그것을 설치하려고 노력하고 있었지만 나는 그것을 생각하지 못하게 만들었다! 제 자리에있는 복제본 세트/구성을 제거하려면 어떻게합니까?

나는 몽고를 설치하고,이 같은 설정 파일에 몽고의 각 인스턴스를 지적했다 :

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

하지만 여기에서 나는 어떻게해야할지 모르겠습니다. 여러 기사, 예제 등을 읽었지만 모두 혼란 스럽습니다.

누군가 어떻게 수행 할 수 있는지 단계별 지침을 제공 할 수 있습니까?

또한 C# 웹 응용 프로그램에서이 복제 세트에 연결하려고합니다. 내 연결 문자열은 무엇을 가리켜 야합니까? 기본, 보조 또는 어떻게 작동합니까? 또한 mongo에 액세스하려면 어떤 사용자를 사용해야합니까? SQL Server에 액세스 할 때 통합 보안을 사용합니다. 여기에서도 같은 결과가 있습니까?

감사합니다, 니얼

답변

2

http://docs.mongodb.org/manual/reference/connection-string/#standard-connection-string-format가 여기에 내가 내 로컬 컴퓨터에 복제 세트를 만들기 위해 다음 기본 단계입니다.

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와 port는 설정에 따라 바뀔 것입니다.

첫 번째 (포트 번호 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 
} 

위의 명령은 복제 세트를 시작하고 "지금 로컬로 저장되었습니다. 약 1 분 후에 온라인 상태가되어야합니다."라는 메시지가 표시됩니다. 당신은 첫 번째가 주요하다는 것을

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 Driver를 사용하여 복제 세트에 연결할 수 있습니다 (대부분 C#의 경우와 같음) ServerAddress 목록을 Mongo 생성자에 전달합니다. 드라이버는 복제본을 인식하므로 기본 변경 사항에 따라 변경됩니다.

기본적으로 모든 읽기 및 쓰기 작업은 기본 작업에서 수행됩니다. 희망이 도움이 됨 :)

관련 문제