코드 잡동사니
Mongo 샤딩 하는 방법 버전 3.6.9 본문
준비물
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 파일 경로를 지정해줘야한다. 굳ㄷㄷ
'MongoDB' 카테고리의 다른 글
Mongo replica Arbiter 없이 우선순위 지정 (0) | 2019.03.20 |
---|---|
Mongo too many open files (0) | 2019.01.31 |
MongoDB replica set 설정하기 (0) | 2019.01.22 |
몽고DB 외부 로그인 접속 방법 (0) | 2018.11.30 |
$elemMatch 배열 안에 값 조회하기 (2) | 2018.01.18 |