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이 완성된다.
추가적으로 아비터 붙이는 것은 다음에...
'프로그래밍 > SQL' 카테고리의 다른 글
MongoDB 설치 및 외부접속 한방에 끝내기 -> Linux 편(Cent OS 8) (0) | 2022.05.12 |
---|---|
잘 되던 Oracle 이 안될때 (0) | 2022.05.12 |
Oracle 서버가 갑자기 죽어서 Service 와 Listener 를 살려도 먹통일 때 (0) | 2022.05.12 |
Oracle 외부접속 허용 (0) | 2022.05.12 |
Schema란? (0) | 2022.05.12 |