티스토리 뷰
# Replica & ReplicaSets
>> 복제솔루션 종류
1. Master & Slave
- Master -> Slave로 단방향 복제
>> 실습1 (Master & Slave 구성)
mkdir C:\mongodb\master
mkdir C:\mongodb\slave1
mkdir C:\mongodb\slave2
mongod --journal --dbpath C:\MONGODB\master --port 10000 --master --storageEngine mmapv1
mongod --journal --dbpath C:\MONGODB\slave1 --port 10001 --slave --source localhost:10000 --storageEngine mmapv1
mongod --journal --dbpath C:\MONGODB\slave2 --port 10002 --slave --source localhost:10000 --storageEngine mmapv1
mongo localhost:10000 접속후 데이터 생성
use test
db.emp.insert({empno:1})
mongo localhost:10001
rs.slaveOk() -- 슬레이브 DB를 Read 할 수 있도록 설정.
use test
db.emp.find()
* Slave는 백업용도 외에 조회용도로 활용할 수 있다.
: mongoclient driver 설정을 통해서 읽기는
Slave로 접속할 수 있게 설정할 수 있음.
>> 실습2 (Master & Slave 복구)
1. Master가 장애시 (마스터 접속후 셧다운)
mongo localhost:10000
use admin
db.shutdownServer()
마스터의 파일을 모두 삭제함.
slave1, slave2 내림
slave1 데이터를 master로 복사
master 재시작
slave1 재시작
slave2 재시작
* slave 자체가 master가 될 수는 없다.
* slave 장애시에는 해당 slave데이터를 모두 지우고 다시 서버를 올리면 됨.
2. ReplicaSets
- Primary & Secondary 서버로 구성
Master & Slave와는 다르게 Primary서버에 장애가 발생하면
실시간으로 Secondary서버가 Primary 서버의 역할을 수행함.
즉 Read&Write가 가능해짐.
Secondary서버는 평상시에는 Read기능만 수행
Heartbeat로 서버간 상태를 체크함.(매 2초마다)
- 장애시 Primary 서버 선출방법
1. Priority에 의한 선출 (DBA가 지정)
2. Arviter Server에 의한 선출 (저사양의 서버로 구성해도 됨)
: Arviter의 알고리즘에 의한 방법임으로 불편할 수 있음.
>> 실습 (Primary & Secondary 서버 구성)
mkdir C:\mongodb\disk1
mkdir C:\mongodb\disk2
mkdir C:\mongodb\disk3
mkdir C:\mongodb\arvit
mongod --journal --dbpath C:\MONGODB\disk1 --port 10001 --replSet rptmongo --oplogSize 10 --storageEngine mmapv1
mongod --journal --dbpath C:\MONGODB\disk2 --port 10002 --replSet rptmongo --oplogSize 10 --storageEngine mmapv1
mongod --journal --dbpath C:\MONGODB\disk3 --port 10003 --replSet rptmongo --oplogSize 10 --storageEngine mmapv1
mongod --journal --dbpath C:\MONGODB\arvit --port 10004 --replSet rptmongo --oplogSize 10 --storageEngine mmapv1
>> Primary 서버에 접속
mongo localhost:10001/admin
>> ReplicaSets 구성
db.runCommand(
{"replSetInitiate": {"_id":"rptmongo", "members":[{"_id":1, "host":"localhost:10001"},
{"_id":2, "host":"localhost:10002"},
{"_id":3, "host":"localhost:10003"},
{"_id":4, "host":"localhost:10004", arbiterOnly:true}
]
}
}
)
>> ReplicaSets 조회
rs.status()
>> Secondary 서버 추가 & 삭제
mkdir C:\mongodb\disk4
mongod --journal --dbpath C:\MONGODB\disk4 --port 10005 --replSet rptmongo --oplogSize 10 --storageEngine mmapv1
-- Primary서버 접속
mongo localhost:10001/admin
-- 추가
rs.add("localhost:10005")
-- 삭제
rs.remove("localhost:10005")
db.printSlaveReplicationInfo()
- EOF -
- Total
- Today
- Yesterday
- 브리다 정수기
- Sybase IQ
- 파나소닉 비데 DL-EH10KWS
- 톡토기
- 카카오 에드
- 증권정보포털
- yugabyteDB
- 남설 팔찌
- 루미큐브 종류
- 유가바이트디비
- weka
- 배당급
- 별이 빚나는 밤
- GKRS
- 빈센트 반 고흐
- 별잉 빛나는 밤
- 고체 향수
- 화분벌레
- VARIDESK
- 홈 오피스
- 코라나 19
- Pixel Pals
- 르세라핌
- 매직 트랙패드2
- 솔리드 쿨론
- 로니카 BCS
- 오미크론
- Life Chair
- node.js
- JMW 헤어드라이기기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |