2014-02-05 2 views
0

MongoDB 샤드는 복제본 구성원을 알아야합니다. 구성원 목록 검색이 동적입니까? 이미 설정 서버에서 샤드로 구성된 기존 복제본에 노드를 추가하면 샤드가 자동으로 업데이트되거나 새 구성원을 복제본에 추가하여 샤드 구성을 수동으로 업데이트합니까?기존 샤드의 실행중인 복제본에 노드 추가

답변

2

이전 버전의 Mongo에서는 2.0.3 이전에는 샤드를 추가 할 때 모든 복제 세트 구성원을 지정해야했습니다. 따라서 샤드가 추가되고 복제본 집합의 구성원 중 하나만 알고 있으면 복제본 집합 구성원 간의 모든 작업이 복제본 집합으로 위임된다는 결론을 내릴 수 있습니다.

아마도 가장 좋은 방법은 자신의 컴퓨터에서 테스트 시나리오를 실행하는 것입니다. 그러나 요구되어야하는 샤딩에 대한 추가 구성이 있음을 제안 할만한 것은 없습니다.

http://docs.mongodb.org/manual/tutorial/add-shards-to-shard-cluster/

몇에게 :

그리고 업데이 트의 비트와 같은

나는 점심을 먹고 : 난 그냥 나열된 튜토리얼에서 매핑으로 인스턴스의로드가 회전을 통해 아무런 관련이 없기 때문에 차이점은 sh.addShard의 사용은 문서에 표시된 모든 구성원 구문이 아니라 복제본 세트의 첫 번째 구성원 만 추가 된 것입니다.

샤드가 올라 오면. 방금 두 개의 복제 세트 노드를 firstset에 추가했습니다. 아무것도없이

http://docs.mongodb.org/manual/tutorial/expand-replica-set/

는 이제 mongos

mongos> db.printShardingStatus() 
--- Sharding Status --- 
sharding version: { 
    "_id" : 1, 
    "version" : 4, 
    "minCompatibleVersion" : 4, 
    "currentVersion" : 5, 
    "clusterId" : ObjectId("52f2f77a538f784f4413e6b9") 
} 
shards: 
    { "_id" : "firstset", 
     "host" :"firstset/localhost:10001,localhost:10002,localhost:10003,localhost:10004,localhost:10005" } 
    { "_id" : "secondset", "host" : "secondset/localhost:20001,localhost:20002,localhost:20003" } 
databases: 
    { "_id" : "admin", "partitioned" : false, "primary" : "config" } 
    { "_id" : "test", "partitioned" : true, "primary" : "firstset" } 
      test.test_collection 
        shard key: { "number" : 1 } 
        chunks: 
          secondset  23 
          firstset  191 

그래서 샤드는 여전히 이동 덩어리 내가 입력 한대로 단지 초기화 finsihed 새로운 노드의 상태를 볼 수 있습니다.

그런데 샤드의 복제 세트에 노드를 추가하는 것이 전부입니다. 이것의 대부분은 1 백만 건의 문서 삽입 중에 이루어졌습니다.

+0

문제를 가져 주셔서 감사합니다. – iCode

+0

우수 답변! – MarcF

관련 문제