코드 잡동사니

Mongo 샤딩 하는 방법 버전 3.6.9 본문

MongoDB

Mongo 샤딩 하는 방법 버전 3.6.9

세객 2019. 1. 25. 11:36

준비물 

mongos : 1대 (192.168.1.245:3000)

mongo config : 3대 (192.168.1.245:10000, 192.168.1.245:11000, 192.168.1.245:12000) (replica 설정되어있음)

mongo shard : 3대 (192.168.1.245:20000, 192.168.1.245:21000, 192.168.1.245:22000) (replica 설정되어있음)



mongo config 서버는 shard 서버의 여러개의 데이터 총 집합 데이터임으로 복제본으로 2대를 추가해서 3대가 필요하다

mongo shard 서버는 1개로만 사용되어있다 나머지 2대는 이 shard 서버 복제본이다



순서

mongo_config 서버 구동 -> mongo_shard 서버 구동 -> mongos 구동



mongo_config 서버의 config 파일

storage: dbPath: /db/mongo_config1/lib/mongo systemLog: path: "/db/mongo_config1/log/mongodb/mongo.log" logAppend: true destination: file traceAllExceptions: false processManagement: fork: true replication: replSetName: "config" sharding: clusterRole: configsvr net: bindIp: 0.0.0.0 port: 10000



mongo_shard 서버의 config 파일

storage:
  dbPath: /root/ha/mongo_shard1/db

systemLog:
  path: "/root/ha/mongo_shard1/log/mongo.log"
  logAppend: true
  destination: file
  traceAllExceptions: false

processManagement:
  fork: true

replication:
  replSetName: "shard"

sharding:
  clusterRole: shardsvr

net:
  bindIp: 0.0.0.0
  port: 20000



mongos 서버의 config 파일

systemLog:
  destination: file
  path: /root/ha/mongo_mongos/mongo.log
processManagement:
  fork: true
sharding:
  configDB: config/192.168.1.245:10000,192.168.1.245:10001,192.168.1.245:10002
net:
  bindIp: 0.0.0.0
  port: 3000


위 config 파일에 포트만 변경시켜서 replica 할 mongodb 를 똑같이 구동해주면 된다. 



전부 구동했으면 mongos 에 접속한다.

mongo --port 3000

sh.addShard("shard/192.168.1.245:20000")


샤딩할 DB 이름 입력

sh.enableSharding("DBname")


끝ㄲ특끄트끝끝끄


이글에서는 샤딩 개수가 1개로써 데이터 분배되는것을 보려면 1개 더 추가해서 봐야한다.






* MongoDB 문서에서는 Mongos 를 백드라운로 실행이 안되는 구문이다 여기서는 fork 를 추가하여 실행하였다. 대신에 fork 를 실행하는 대신에 systemLog 파일 경로를 지정해줘야한다. 굳ㄷㄷ

Comments