[MongoDB] 샤드서버 구성 실습
# 샤딩
>> 실습
-- 폴더를 미리 만듬.
c:\mongodb\shard1, c:\mongodb\shard2, c:\mongodb\shard3
c:\mongodb\config1, c:\mongodb\config2, c:\mongodb\config3
>> Shard서버 포트
shard1 40001
shard1 40002
shard1 40003
mongod --shardsvr --dbpath c:\mongodb\shard1 --port 40001 --storageEngine mmapv1
mongod --shardsvr --dbpath c:\mongodb\shard2 --port 40002 --storageEngine mmapv1
mongod --shardsvr --dbpath c:\mongodb\shard3 --port 40003 --storageEngine mmapv1
>> Config서버 포트
config1 50001
config2 50002
config3 50003
mongod --configsvr --dbpath c:\mongodb\config1 --port 50001 --storageEngine mmapv1
mongod --configsvr --dbpath c:\mongodb\config2 --port 50002 --storageEngine mmapv1
mongod --configsvr --dbpath c:\mongodb\config3 --port 50003 --storageEngine mmapv1
>> Route Server (mongos)
mongos --configdb localhost:50001,localhost:50002,localhost:50003 --port 50000 --chunkSize 1
>> mongos 접속 후 샤드 노드 등록
mongo localhost:50000/admin
db.runCommand({addshard :"localhost:40001"})
db.runCommand({addshard :"localhost:40002"})
db.runCommand({addshard :"localhost:40003"})
>> 해당 디비의 샤드 활성화
db.runCommand({enablesharding: "testDB"})
>> collection을 생성하고 샤드키 등록, 샤드키 설정시 반드시 인덱스를 생성해야 함.
db.runCommand( {shardcollection:"testDB.things", key:{empno:1, time:1})
>> shard 노드 조회
db.runCommand({listshards:1})
>> testDB의 things 컬렉션에 데이터를 넣으면 샤드노드 서버에 데이터가 분산되서 들어감.
- EOF -