1. Mongodb 커뮤니티 버전 설치
1.1. 다운로드, 설치
제품 > 커뮤니티 에디션 클릭
Select package 클릭
다운로드
mongodb-macos-aarch64-7.0.6.tgz 파일을 압축 해제하면 MongoDB 설치가 된 것이다
1.2. 기본 세팅
- 적절한 위치에 다음 폴더들을 생성한다
- mongodb
- mongodb/data : mongodb 인스턴스가 데이터를 저장시킬 위치
- mongodb/log : mongodb 실행중 생기는 log를 저장할 위치
- mongodb/config : mongodb 설정 파일 위치
- mongodb-macos-aarch64-7.0.6를 mongodb 폴더에 이동시킨다
2. MongoDB 단일 인스턴스 실행
2.1. Data 폴더 생성
아래 경로로 폴더 생성
mongodb/data/my-mongodb
2.2. 인스턴스 실행 (MongoDB 서버 띄우기)
실행 방법1. Binary 옵션 이용
1. bin 디렉토리로 이동
$ cd /mongodb/mongodb-macos-aarch64-7.0.6/bin
2. 터미널에서 mongod 파일을 이용해 다음 명령어를 실행
$ ./mongod --port 27017 --bind_ip "0.0.0.0" --dbpath /mongodb/data/my-mongodb
실행 방법2. Config File 이용
1. 아래와 같이 Config File 생성
net:
port: 27017 # 첫 번째 인스턴스의 port
bindIp: 0.0.0.0 # 접속을 허용할 IP
storage:
dbPath: "/mongodb/data/my-mongodb" # MongoDB 인스턴스가 데이터를 저장할 위치
directoryPerDB: true # 데이터베이스 별로 storage 디렉토리를 만들겠다는 뜻
2. bin 디렉토리로 이동
3. 터미널에서 mongod 파일을 이용해 다음 명령어를 실행
$ ./mongod -f /mongodb/config/my-mongodb.config
3. Replica Set 구축
3.1. Replica Set을 구축할 인스턴스 1,2,3의 data 폴더 생성
아래 경로로 폴더 생성
mongodb/data/instance1
mongodb/data/instance2
mongodb/data/instance3
3.2. 각 인스턴스의 Config 파일 생성
1. mongodb/config/mongod1.conf 파일 생성 후 아래 내용 입력
net:
port: 27017 # 첫 번째 인스턴스의 port
bindIp: 0.0.0.0 # 접속을 허용할 IP
storage:
dbPath: "/mongodb/data/instance1" # MongoDB 인스턴스가 데이터를 저장할 위치
directoryPerDB: true # 데이터베이스 별로 storage 디렉토리를 만들겠다는 뜻
replication:
oplogSizeMB: 128 # replica set의 oplog 크기
replSetName: "rs1" # replica set의 이름
systemLog:
path: "/mongodb/log/instance1.log" # MongoDB가 남기는 로그를 저장할 위치
destination: "file" # 로그를 파일로 저장
2. mongod2.conf, mongod3.conf 생성 후 port, storage.dbPath, systemLog.path를 각각 수정해준다.
3.3. Replica Set의 각 인스턴스 실행
1. bin 디렉토리로 이동
$ cd /mongodb/mongodb-macos-aarch64-7.0.6/bin
2. mongod 파일을 이용해 instance1 실행
$ ./mongod -f /mongodb/config/mongod1.confg
3. instance2, 3도 이어서 실행
$ ./mongod -f /mongodb/config/mongod2.confg
$ ./mongod -f /mongodb/config/mongod3.confg
3.4. Primary로 선정할 인스턴스에 접속해서 replica set 구성 initialize
1. MongoDB Shell로 Primary로 선정할 instance1에 접속
2. 현재 Replica Set 구성이 되지 않았음을 확인
- rs.status() 입력
- MongoServerError: no replset config has been received 출력 확인
3. rs.initialize를 입력해 Replica Set을 구성하고, initialize를 입력한 인스턴스를 primary로 선출
- 아래 코드 입력
rs.initiate({
_id: "rs1"
members: [
{ _id: 0, host: "localhost: 27017" },
{ _id: 1, host: "localhost: 27018" },
{ _id: 2, host: "localhost: 27019" },
],
});
- 시간이 지남에 따라 primary 선출 작업이 진행되고, direct: other → direct: secondary → direct: primary 로 변경됨
4. Replica Set이 구성되었음을 확인
- rs.status() 입력
- 아래와 같은 내용을 확인
'Back-End > MongoDB' 카테고리의 다른 글
[MongoDB] MQL 기초 4 - 배열과 내장 Document를 다루는 방법 1 (Read) (0) | 2024.05.31 |
---|---|
[MongoDB] MQL 기초 3 - 유용한 CRUD 쿼리 함수 (0) | 2024.05.31 |
[MongoDB] MQL 기초 2 - 기본 CRUD (0) | 2024.05.31 |
[MongoDB] MQL 기초 1 - Query Filter와 Operator (0) | 2024.05.31 |
[MongoDB] SQL vs MQL 비교 문서 (0) | 2024.05.31 |