티스토리 뷰

Database/mongoDB

[MongoDB] 샤드서버 구성 실습

데브포유 2017. 3. 23. 15:26
반응형

# 샤딩 

>> 실습

-- 폴더를 미리 만듬.

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 - 



반응형