MongoDB Replica Set

시스템 2023. 1. 10. 13:55

출처 : https://devs0n.tistory.com/43

  • 파일 생성

/home/ubuntu/mongod/docker-compose.yml

version: "3.6"

services:
  mongo-1:
    image: mongo:4.4
    container_name: mongo-1
    ports:
      - "30000:30000"
    command: mongod --replSet replset --port 30000 **--bind_ip 0.0.0.0**

  mongo-2:
    image: mongo:4.4
    container_name: mongo-2
    ports:
      - "30001:30001"
    command: mongod --replSet replset --port 30001 **--bind_ip 0.0.0.0**

  mongo-3:
    image: mongo:4.4
    container_name: mongo-3
    ports:
      - "30002:30002"
    command: mongod --replSet replset --port 30002 **--bind_ip 0.0.0.0**

C:\Windows\System32\drivers\etc\hosts 추가 (MongoDB IP)

**192.168.0.53** mongo-1
192.168.0.53 mongo-2
192.168.0.53 mongo-3
시작 
docker compose up &

종료
docker compose down
**도커에 접속** 

docker exec -it mongo-1 mongo --port 30000

**mongod  1 :** PRIMARY
**mongod  2 :** SECONDARY
**mongod  3 :** SECONDARY

> config = {
	"_id" : "replset", // docker-compose에 있는 replSet과 동일하게
	"members" : [
		{
			"_id" : 0,
			"host" : "mongo-1:30000"
		},
		{
			"_id" : 1,
			"host" : "mongo-2:30001"
		},
		{
			"_id" : 2,
			"host" : "mongo-3:30002"
		}
	]
}
 
> rs.initiate(config);
{ "ok" : 1 }

**mongod  1]**
**샘플데이터 입력** 
db.wallets.insert(
  { 
    wid: 4,
    uid: "11e035c6-ed09-4c91-aae7-50a72ea3f344",
    ucPubkey:   "0x029c8804e80db19ffe796746ae70c04f25e137c14b08d3e1ea925b92b734812632", 
    created: "2022-08-11T14:00:51.059Z" 
  }
)

**샘플 데이터 확인**
> db.wallets.find({})
{ "_id" : ObjectId("63acdad42c351689ae8b3af7"), "wid" : 4, "uid" : "11e035c6-ed09-4c91-aae7-50a72ea3f344", "ucPubkey" : "0x029c8804e80db19ffe796746ae70c04f25e137c14b08d3e1ea925b92b734812632", "created" : "2022-08-11T14:00:51.059Z" }
>

  • Robo 3T docker compass 접속 정보 설정
  • docker compass 왼쪽 확인

SECONDARY에 접근하기 위한 명령어

**mongod  2] , mongod  3]**

replset:SECONDARY> rs.slaveOk()
  • mongod 1] , mongod 2] , mongod 3] 데이터 동일 여부 확인
    • 파일 생성
    /home/ubuntu/mongod/docker-compose.ymlC:\Windows\System32\drivers\etc\hosts 추가 (MongoDB IP)
    시작 
    docker compose up &
    
    종료
    docker compose down
    
    **도커에 접속** 
    
    docker exec -it mongo-1 mongo --port 30000
    
    **mongod  1 :** PRIMARY
    **mongod  2 :** SECONDARY
    **mongod  3 :** SECONDARY
    
    > config = {
    	"_id" : "replset", // docker-compose에 있는 replSet과 동일하게
    	"members" : [
    		{
    			"_id" : 0,
    			"host" : "mongo-1:30000"
    		},
    		{
    			"_id" : 1,
    			"host" : "mongo-2:30001"
    		},
    		{
    			"_id" : 2,
    			"host" : "mongo-3:30002"
    		}
    	]
    }
     
    > rs.initiate(config);
    { "ok" : 1 }
    
    **mongod  1]**
    **샘플데이터 입력** 
    db.wallets.insert(
      { 
        wid: 4,
        uid: "11e035c6-ed09-4c91-aae7-50a72ea3f344",
        ucPubkey:   "0x029c8804e80db19ffe796746ae70c04f25e137c14b08d3e1ea925b92b734812632", 
        created: "2022-08-11T14:00:51.059Z" 
      }
    )
    
    **샘플 데이터 확인**
    > db.wallets.find({})
    { "_id" : ObjectId("63acdad42c351689ae8b3af7"), "wid" : 4, "uid" : "11e035c6-ed09-4c91-aae7-50a72ea3f344", "ucPubkey" : "0x029c8804e80db19ffe796746ae70c04f25e137c14b08d3e1ea925b92b734812632", "created" : "2022-08-11T14:00:51.059Z" }
    >
    
    
    • Robo 3T docker compass 접속 정보 설정

    • docker compass 왼쪽 확인

    **mongod  2] , mongod  3]**
    
    replset:SECONDARY> rs.slaveOk()
    
    • mongod 1] , mongod 2] , mongod 3] 데이터 동일 여부 확인

'시스템' 카테고리의 다른 글

Logstash 설치  (0) 2023.04.27
iptime 공유기 & mesh linksys 콜라보레이션 무선 AP 구성  (0) 2023.04.18
s3 권한이 없는 경우  (0) 2022.05.17
프로메테우스 모니터링  (0) 2022.03.30
nginx/1.18.0 (Ubuntu20.04) gzip  (0) 2022.03.07
블로그 이미지

iesay

,