MongoDB Trasaction 지원 때문에 꽤나 시간을 썻다. 이게 replica set이랑 무슨 상관이 있나?

Spring - mongodb transaction을 하기 위해서는 replica set 구성이 필요하다고 한다.

관련해서 까먹지 않으려면 정보를 남겨야 할 것 같다.

아래 정리는 MongoDB는 설치되어 있다는 가정하에 진행하겠다.

1. 디비 저장할 폴더 2개 만들기.

MongoDB는 실행 시 데이터 저장할 곳을 정할 수 있다. 나는

위 처럼 mst(Master DB 저장될 곳) / sla(Slave DB 저장될 곳) 두 개의 폴더를 만들어서 구성하려고 했다.

2. MongoDB 실행하기

로그를 보기 위해서 nohup 없이 실행(나중에 정상적으로 된 후, nohup을 맨 앞에 붙여서 실행 해주면 됨)

[Master 실행]

nohup mongod --bind_ip 0.0.0.0 --port 27017 --dbpath /home/kaonsoft/push/mongoDB/mst -replSet rs0 --smallfiles --oplogSize 128 > /dev/null &

[Slave 실행]

nohup mongod --bind_ip 0.0.0.0 --port 27018 --dbpath /home/kaonsoft/push/mongoDB/sla -replSet rs0 --smallfiles --oplogSize 128 > /dev/null &

*참고 : 포트 27017 / 27018 은 다 열려있어야 한다.

3. 콘솔에 접속 해서 initiate 하기.

나는 Robo 3T 1.3.1 를 이용해서 접속했다.

우선 Master로 쓸 DB Console에 접속 해 rs.initiate() 실행한다.

그러면 replica value가 setting 되는데, rs.status() 로 확인 해 보면

Master mongoDB 에 primary 로 나타나는 것을 확인할 수 있다.

그 후 Master mongoDB shall 에 Secondary 로 쓸 mongoDB 정보를 추가한다.

rs.add("hostName:port")

* 나는 VM 하나에서 Replica Set을 구성한 것이기 때문에 hostName은 마스터에 등록되어있는 name의 ip영역 혹은 hostname으로 등록해줘야 한다.

이러면 기본적인 replica set이 완성된다.

추가적으로 아비터 붙이는 것은 다음에...

+ Recent posts