설치 테스트는 Ububtu 20.04 버전, Java11 버전에서 확인하였다.
Ububtu 환경에서 MongoDB 를 설치하기 위해서 아래의 메뉴얼을 따르면 된다.
### mongodb user/group 추가
adduser mongodb
### 패키지 정보 업데이트
sudo apt-get update
### home 디렉토리로 이동
cd /home
### MongoDB tgz 파일 다운로드
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.2.tgz
### 압축풀기
tar -xzvf mongodb-linux-x86_64-ubuntu2004-6.0.2.tgz
### 디렉토리명 변경
mv mongodb-linux-x86_64-ubuntu2004-6.0.2.tgz mongodb
mongoConfig.conf 파일은 mongoConfig의 configure 파일로
mongoc 인스턴스 실행을 위한 기본적인 setting 값이 설정되어 있는 "설정 파일" 이다.
해당 파일은 /etc/mongodb/mongoConfig.conf 로 생성해주자.
### mongod.conf 파일 생성
touch mongoConfig.conf
아래는 mongoConfig.conf setting 목록이다.
### mongoConfig data 디렉토리 설정
storage:
dbPath: /var/lib/mongodConf
journal:
enabled: true
### 로그파일 디렉토리 설정
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongoConf.log
# network interfaces
net:
port: 27020
bindIp: 0.0.0.0
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
security:
keyFile: /etc/mongodb/keyfile
### replication set 설정 -> 이름 지정
replication:
replSetName: "rsConfig"
### 샤딩 설정
### configsvr 라고 지정해야 해당 인스턴스가 mongoConfig 서버가 된다.
sharding:
clusterRole: configsvr
위에서 압축풀어준 mongodb 파일로 접근해준다.
/home/mongodb/bin 명령어로 해당 디렉토리내에 접근한다.
해당 디렉토리에 접근하면 mongod, mongos 파일이 존재한다.
현재는 mongos 파일은 필요없지만 일단 mongos, mongod 파일 모두
/usr/bin 디렉토리로 옮겨준다.
또한 root 유저로 해당 작업을 진행하고 있다면,
파일 소유자와 그룹이 root 로 되어있을 것이다.
이런식으로 되어있으면 mongod 를 실행할 때 권한오류가 발생하게 되므로
파일 소유자와 그룹을 mongodb 로 바꿔준다.
### /usr/bin/ 디렉토리로 mongod/mongos 파일을 이동또는 복사
mv mongod /usr/bin
mv mongos /usr/bin
### mongod 파일 소유자/그룹 변경
chown mongodb:mongodb mongod
chown mongodb:mongodb mongos
해당 mongoConfig 인스턴스의 데이터 파일과
log 파일 저장을 위해 새로운 디렉토리를 만들어준다.
여기서도 마찬가지로 소유권은 mongodb 에게 할당한다.
### /var/lib/mongoConf
mkdir /var/lib/mongoConf
### mongod 디렉토리 소유자/그룹 변경
chown mongodb:mongodb mongoConf
### mongod 로그 디렉토리 생성
mkdir /var/log/mongodb
### mongodb 디렉토리 소유자/그룹 변경
chown mongodb:mongodb mongodb
cd /var/log/mongodb
### mongod 로그 파일 생성
touch mongoConf.log
### mongod 로그파일 소유자/그룹 변경
chwon mongodb:mongodb mongoConf.log
여기까지 mongoConfig 인스턴스의 설치준비는 완료가 되었다.
하지만, 서비스의 등록없이 인스턴스를 관리하다보면 불편함이 생긴다.
그러므로 서비스 등록을 진행해주자.
먼저 아래와 같이 명시된 디렉토리로 이동하여 새로운 파일을 생성해주자.
### /lib/system/systemd 로 이동
cd /lib/system/systemd
### mongoConfig.service 파일 생성
touch mongoConfig.service
mongoConfig.service 의 내용은 아래와 같다.
여러가지 옵션이 지정되어 있는데
해당 서비스를 시작할 경우에 mongodb 소유자, 그룹으로 시작하겠다는 의미이고
혹시나 오류가 발생하여 서비스가 종료되었을때
다시 서비스를 가동해주라는 옵션도 지정되어 있다.
[Unit]
Description=MongoDB Configure Server
Documentation=https://docs.mongodb.org/manual
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/mongod -config /etc/mongodb/mongoConfig.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
이제 mongoConfig instance 를 서비스로 관리할 수 있게 되었다.
아래의 명령어를 통하여 서비스를 구동해보자.
systemctl daemon-reload ## 설정 다시 불러오기
systemctl enable mongoConfig.service ## 최초 구동시 자동실행 여부 결정해준다.
systemctl start mongoConfig.service ## mongoConfig service 시작
'MongoDB' 카테고리의 다른 글
[MongoDB] WiredTiger StorageEngine (0) | 2023.03.13 |
---|---|
[MongoDB] Ubuntu MongoDB 설치 - mongoshell 설치 (0) | 2022.11.28 |
[MongoDB] Ubuntu MongoDB 설치 - mongos 설치 (0) | 2022.11.25 |
[MongoDB] Ubuntu MongoDB 설치 - mongod 설치 (0) | 2022.11.23 |
[MongoDB] MongoDB 란? (0) | 2022.11.22 |