'replset'에 해당되는 글 1건
- 2011.06.30 MongoDB replication
2가지의 replication을 지원
ReplicaSet 구성 (single server로 구성시)
http://www.mongodb.org/display/DOCS/Replica+Set+Tutorial
mongod --fork --logpath /home/yoga/workspace/mongod1/log/mongodb.log --logappend --dbpath / home/yoga/workspace/mongod1/data --rest --replSet mall --port 27018 --oplogSize 2048
mongod --fork --logpath /home/yoga/workspace/mongod2/log/mongodb.log --logappend --dbpath / home/yoga/workspace/mongod2/data --rest --replSet mall --port 27019 --oplogSize 2048
mongod --fork --logpath /home/yoga/workspace/mongod3/log/mongodb.log --logappend --dbpath / home/yoga/workspace/mongod3/data --rest --replSet mall --port 27020 --oplogSize 2048
mongo --port 27018
config = {
_id: 'foo',
members: [ {_id: 0, host: 'localhost:27017'},
{_id: 1, host: 'localhost:27018'},
{_id: 2, host: 'localhost:27019'}] }
rs.initiate(config);
음 master에 엄청난 양의 local데이터가 쌓이는데.... oplog파일 사이즈를 42기가로 잡아서 그런거 같은데...이걸 처음에 셋팅해줘야할듯.
oplog 처음에 잡는 사이즈가 전체 디스크의 5%를 잡는다고한다..... 시작할때 --oplogSize 2048 같이 명시적으로 주도록하자
replicaSet중 하나를 arbiter로 만들기위해서는config에 arbiterOnly: True를 추가해서 rs.reconfig(config) 를 실행해주면됨
mongo shell에서 slave에서 read하기 위해서는 rs.slaveOk() 를 slave에서 실행후에 find해보면된다
driver에서는 slaveok=True옵션을 사용
replicaSet에 관한 명령어 설명 : http://www.mongodb.org/display/DOCS/Replica+Set+Commands
slave가 oplog로 복구 못할정도가 될경우 해결 방법
1. master에서 lock을 걸고 fsync를 통해서 파일에 동기화시킨후 copy
2. 해당 slave에 data 디렉토리안에 데이터를 전부 삭제하고 재투입 (자동복구...시간 오래걸림)
- master-slave
master 1대에 slave여러개
- replica-set ( version >= v1.6)
automatic fail-over and recovery
using sharding
현재 master가 없다면 자체적으로 master를 선정한다
master가 변경되면 driver들은 자체적으로 변경된 master로 write를 보낸다
read data를 분산시킨다
ReplicaSet 구성 (single server로 구성시)
http://www.mongodb.org/display/DOCS/Replica+Set+Tutorial
mongod --fork --logpath /home/yoga/workspace/mongod1/log/mongodb.log --logappend --dbpath / home/yoga/workspace/mongod1/data --rest --replSet mall --port 27018 --oplogSize 2048
mongod --fork --logpath /home/yoga/workspace/mongod2/log/mongodb.log --logappend --dbpath / home/yoga/workspace/mongod2/data --rest --replSet mall --port 27019 --oplogSize 2048
mongod --fork --logpath /home/yoga/workspace/mongod3/log/mongodb.log --logappend --dbpath / home/yoga/workspace/mongod3/data --rest --replSet mall --port 27020 --oplogSize 2048
mongo --port 27018
config = {
_id: 'foo',
members: [ {_id: 0, host: 'localhost:27017'},
{_id: 1, host: 'localhost:27018'},
{_id: 2, host: 'localhost:27019'}] }
rs.initiate(config);
음 master에 엄청난 양의 local데이터가 쌓이는데.... oplog파일 사이즈를 42기가로 잡아서 그런거 같은데...이걸 처음에 셋팅해줘야할듯.
oplog 처음에 잡는 사이즈가 전체 디스크의 5%를 잡는다고한다..... 시작할때 --oplogSize 2048 같이 명시적으로 주도록하자
replicaSet중 하나를 arbiter로 만들기위해서는config에 arbiterOnly: True를 추가해서 rs.reconfig(config) 를 실행해주면됨
mongo shell에서 slave에서 read하기 위해서는 rs.slaveOk() 를 slave에서 실행후에 find해보면된다
driver에서는 slaveok=True옵션을 사용
replicaSet에 관한 명령어 설명 : http://www.mongodb.org/display/DOCS/Replica+Set+Commands
slave가 oplog로 복구 못할정도가 될경우 해결 방법
1. master에서 lock을 걸고 fsync를 통해서 파일에 동기화시킨후 copy
2. 해당 slave에 data 디렉토리안에 데이터를 전부 삭제하고 재투입 (자동복구...시간 오래걸림)