mongodb Sharding 요약 정리

몽고디비의 샤딩 실습 결과
->  replication 은 제외하고 구성 (추후에 언급)

 

1. 샤드 서버 2개 띄워 본다.

./mongod –shardsvr –port 27018 –dbpath /data/db
./mongod –shardsvr –port 27001 –dbpath /data/db27001

 

2. 콘피그 서버 1개만 띄워본다

./mongod –configsvr –port 27019

 

3. 서비스를 mongos로 띄워본다

./mongos –configdb ppillip.local:27019
—> 콘피그 서버 포트를 물고 띄웁니다. client (어플리케이션서버) 가 접속해야할 서비스 입니다.

 

4. 서비스에 접속합니다.

./mongo –shell week6.js localhost/week6
첫번째 arg : 몽고디비 콘솔 자체가 자바스크립트라서 –shell 옵션으로 사전 정의 해놓은 유틸이나 함수가 들어있는 js 화일을 같이 로딩하여 편하게 씁니다.
두번째 arg : 접속할 호스트와 db 명을 “/”로 구분하여 넣어줍니다.

4.1 샤드를 추가 해야지요

mongos> sh.addShard(“shard0000/ppillip.local:27018”)
mongos> sh.addShard(“shard0001/ppillip.local:27001”)
-> 첫번째 addShard 하고나서 데이터가 너무 많기 때문에 두번째 샤딩을 하는것이겟지요. 세번째도 네번째도 마찬가지구요. 이럴때마다 balancer 란놈이 개입을해서
데이터를 샤드별로 공평히?나누어 줍니다.

 

4.2 샤드를 enable 합니다.

mongos> sh.enableSharding(“week6”)
week6는 디비명 입니다.

 

4.3 자.. 이제 컬렉션을 갈라 볼까요

샤딩해줄 컬렉션에 인덱스를 걸어 봅니다. 원래 이런건 운영중일때 당연이 걸려있었겠지요.
mongos> db.trades.ensureIndex( { ticker:1, time:1 } )

 

4.4 이제는 컬렉션을 샤딩에 추가 해볼께요. (컬렉션명,키,유니크여부)

mongos> sh.shardCollection(“week6.trades”,{ticker:1 , time:1})

만약 운영중에 샤딩프로세스(mongod)를 추가 하고 싶으면 1)번 4.1)번을 해주면 됩니다.
물론 접속은 mongos 에 접속 하겠지요.

설명이 너무 rough 해서 죄송 합니다.

  • Facebook
  • Google Plus
  • Twitter
  • LinkedIn
  • Pinterest
  • Tumblr
  • Instapaper
  • Delicious