Software Workshop

설치

download

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.3.tgz

버전 확인할 것

압축 풀기

tar xvfz mongodb-linux-x86_64-2.6.3.tgz

링크 걸기

ln -sf mongodb-linux-x86_64-2.6.3 mongodb

.bashrc에 다음 추가

export PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH=/home/terzeron/mongodb/bin:${PATH}

환경변수 재적용

. .bashrc

저장 디렉토리 생성

sudo mkdir -p /data/db

daemon 실행

nohup sudo mongod --replSet "rs0" &

nohup.out 파일을 살펴볼 것

replication 구성

서버 구성

3대의 서버 중에서 두 대는 replica set을 구성하고 나머지 한 대는 장애 발생 시에 primary를 결정할 결정권자(arbiter) 역할을 맡김

storage1.server 10.0.0.1
storage2.server 10.0.0.2
storage3.server 10.0.0.3 arbiter

호스트명 관리

실

아무 서버에서나 mongo를 실행하고 replica set 시작

rs.initiate()
rs.add("10.0.0.2")
rs.addArb("10.0.0.3")

client에서 접속할 때

conn = new Mongo("rs0/10.0.0.1,10.0.0.2,10.0.0.3")

MEAN stack의 mongoose 설정

db: 'mongodb://10.0.0.1,10.0.0.2,10.0.0.3/mean-dbname',
db_options: {
    replset: {
        rs_name: 'rs0'
    },
},

Mongoose 기능

  1. mongoosejs의 내부 에러 핸들링(retry) 로직은 없음
  2. heartbeat interval 조절은 하드코드되어 있어서 조절 불가능함
  3. mongodb 자체의 connect option에 다음과 같은 옵션이 제공되어 처음 커넥션 만들 때만 유효한 것으로 확인됨. db_options 항목에 다음 옵션을 추가하면 됨
{ server: { auto_reconnect: true } }