빅데이터/Mongo DB / / 2024. 2. 27. 19:08

[샤드] mongodb shard 구성 - docker

Introduction

이번 글에서는 docker 디렉토리 구성과 docker와 mongodb 명령어들을 정리하겠습니다.


디렉토리 및 파일 구조

docker 및 mongodb 구성에 숙련자가 아니기에 모든 서버의 docker-compose 파일을 각각 작성하였습니다. 

/data/mongodb-cluster/config-compose
/data/mongodb-cluster/config-compose/docker-compose.yml
/data/mongodb-cluster/config-compose/cfg/Dockerfile
/data/mongodb-cluster/config-compose/cfg/mongod.conf
/data/mongodb-cluster/config-compose/cfg/mongodb.key

/data/mongodb-cluster/mongos-compose
/data/mongodb-cluster/mongos-compose/docker-compose.yml
/data/mongodb-cluster/mongos-compose/mog/Dockerfile
/data/mongodb-cluster/mongos-compose/mog/mongod.conf
/data/mongodb-cluster/mongos-compose/mog/mongodb.key

/data/mongodb-cluster/shard-compose
/data/mongodb-cluster/shard-compose/docker-compose.yml
/data/mongodb-cluster/shard-compose/sha/Dockerfile
/data/mongodb-cluster/shard-compose/sha/mongod.conf
/data/mongodb-cluster/shard-compose/sha/mongodb.key

 

도커 명령어

아래는 작성한 파일을 실행하고 관리하는데 주로 사용되는 docker 명령어입니다.

docker stop [컨테이너_이름_또는_ID]
docker start [컨테이너_이름_또는_ID]
docker rm [컨테이너_이름_또는_ID]
docker logs [컨테이너_이름_또는_ID]
docker ps -a
docker exec -it [컨테이너_이름_또는_ID] /bin/bash
docker exec -it [컨테이너_이름_또는_ID] mongosh
docker compose up -d --build

docker volume ls
docker volume prune

docker images

docker network ls
docker network rm [네트워크 이름]
docker network prune

sudo netstat -tulpn

 

Mongodb 명령어

아래 작성한 내용은 몽고디비 쉘 명령어로 주로 사용했던 명령어들입니다.

rs.config()
rs.initiate()
rs.status()

show users

use admin

// user는 admin에 root와 사용할 데이터베이스에 dbOwner가 필요
// configsvr, shardsvr primary에서 각각 생성필요
db.createUser({   
  user: "admin",    
  pwd: "admin",    
  roles: [             
    {   
      role: "root",   
      db: "admin"   
    }   
  ]}   
)

db.createUser({   
  user: "owner",    
  pwd: "owner",    
  roles: [             
    {   
      role: "dbOwner",   
      db: "[디비이름]"   
    }   
  ]}   
)

db.auth("admin", "admin")

 

shard 관련 명령어

// configsvr (primary)
rs.initiate(
  {
    _id: "cfgrs",
    configsvr: true,
    members: [
      { _id : 0, host : "192.168.2.245:40001" },
      { _id : 1, host : "192.168.2.246:40002" },
      { _id : 2, host : "192.168.2.247:40003" }
    ]
  }
)

// shardsvr (primary)
rs.initiate(
  {
    _id: "shard1rs",
    members: [
      { _id : 0, host : "192.168.2.245:50001" },
      { _id : 1, host : "192.168.2.246:50002" },
      { _id : 2, host : "192.168.2.247:50003" }
    ]
  }
)

// mongos
sh.addShard("shard1rs/192.168.2.245:50001")
sh.addShard("shard1rs/192.168.2.246:50002")
sh.addShard("shard1rs/192.168.2.247:50003")

 

다음 장에서 실제 작성된 내용과 설정 절차에 따라 내용을 진행해보겠습니다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유