(MongoDB) Sharding 및 Replication 구성하기 ver3.4
먼저
1. mongod서버
2. config서버
3. mongos가 필요하다
* mongod는 몽고 데이터를 저장하는 곳
* mongos는 request의 라우터 역할을 한다.
* config는 데이터를 저장하지 않고 mongos로 부터 request가 들어왔을 때, 해당 데이터가 어느 샤드에 있는지 알려준다.
* mongos는 config서버의 데이터를 캐쉬한다.
> --shardsvr --port 27017 --dbpath /data/db --replSet reply_replica (Secondary)
> --shardsvr --port 27012 --dbpath /data/shard1 --replSet reply_replica (Primary)
> --shardsvr --port 27013 --dbpath /data/shard2 --replSet reply_replica (Secondary)
*SHARD2
--shardsvr --port 28017 --dbpath /data/db1 --replSet shard2_replset (Primary)
--shardsvr --port 28117 --dbpath /data/db1_replica1 --replSet shard2_replset (Secondary)
> mongod --configsvr --port 27010
이제 샤드를 등록해야 하는데 config서버에 해당 샤드 들을 등록해야하는데
ver3.4부터는 샤드의 replica만 등록 가능하다
그러므로 replica를 만들어야한다.
일단 Primary에 해당하는 27017포트에 해당하는 녀석에 접속한다
> mongo localhost:27017
그 후 rs.initiate()로 replicaSet을 구성한다.
해당 27017포트는 Primary가 된다
그 후 rs.add("Sam-D:27012")로 replica를 추가하면
다음과 같이 뜬다.
1) Primary
2) Secondary
특징으로는 Primary -> Secondary로 chunk가 이동시 WiredTigerEngine임에도 불구하고
Document락이 걸리는 것이 아니라 Collection락이 걸리는 것을 볼 수 있다.
그 이유는 샤딩은 해당 컬렉션에서 이루어지기 때문이다.
3. mongos 서버 등록
mongos --configdb configserver_replset/localhost:47010 --port 1000
4. 샤드된 mongd를 mongos에 등록하기
mongo --host localhost --port 1000
5. 그후 등록된 샤드를 추가하기 위해
mongo --host localhost --port 1000
<샤딩 결과>
그 후 디비와 컬렉션과 샤드키 추가
> sh.enableSharding("database")
> sh.shardCollection("dabase.collection", {"field" : 1});
1. mongod서버
2. config서버
3. mongos가 필요하다
* mongod는 몽고 데이터를 저장하는 곳
* mongos는 request의 라우터 역할을 한다.
* config는 데이터를 저장하지 않고 mongos로 부터 request가 들어왔을 때, 해당 데이터가 어느 샤드에 있는지 알려준다.
* mongos는 config서버의 데이터를 캐쉬한다.
1. mongod 구성
* SHARD1
> --shardsvr --port 27012 --dbpath /data/shard1 --replSet reply_replica (Primary)
> --shardsvr --port 27013 --dbpath /data/shard2 --replSet reply_replica (Secondary)
*SHARD2
--shardsvr --port 28017 --dbpath /data/db1 --replSet shard2_replset (Primary)
--shardsvr --port 28117 --dbpath /data/db1_replica1 --replSet shard2_replset (Secondary)
2. config 서버 구성
> mongod --configsvr --port 27010
이제 샤드를 등록해야 하는데 config서버에 해당 샤드 들을 등록해야하는데
ver3.4부터는 샤드의 replica만 등록 가능하다
그러므로 replica를 만들어야한다.
일단 Primary에 해당하는 27017포트에 해당하는 녀석에 접속한다
> mongo localhost:27017
그 후 rs.initiate()로 replicaSet을 구성한다.
해당 27017포트는 Primary가 된다
그 후 rs.add("Sam-D:27012")로 replica를 추가하면
다음과 같이 뜬다.
1) Primary
2) Secondary
특징으로는 Primary -> Secondary로 chunk가 이동시 WiredTigerEngine임에도 불구하고
Document락이 걸리는 것이 아니라 Collection락이 걸리는 것을 볼 수 있다.
그 이유는 샤딩은 해당 컬렉션에서 이루어지기 때문이다.
3. mongos 서버 등록
mongos --configdb configserver_replset/localhost:47010 --port 1000
4. 샤드된 mongd를 mongos에 등록하기
mongo --host localhost --port 1000
5. 그후 등록된 샤드를 추가하기 위해
mongo --host localhost --port 1000
<샤딩 결과>
그 후 디비와 컬렉션과 샤드키 추가
> sh.enableSharding("database")
> sh.shardCollection("dabase.collection", {"field" : 1});
댓글
댓글 쓰기