Home MongoDB 설치 및 사용법
Post
Cancel

MongoDB 설치 및 사용법

Mongo DB란?

간단한 정의

  • NoSQL 데이터베이스로, 기존 RDBMS의 SQL을 사용하는 방식이 아님
  • 테이블 간 관계가 RDBMS와 다르며, ACID 방식으로 작동하지 않음

Local 환경의 mount된 disk를 활용한 sharding 구축

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
### 구성은 2개의 샤드 서버, 2개의 config 서버(1개는 replica)
### 

### Shard server
mongod --shardsvr --dbpath {path} --port 30001
mongod --shardsvr --dbpath {path} --port 30002

### Config server
mongod --configsvr --replSet {replica name} --dbpath {path/config} --port 50001
mongod --configsvr --replSet {replica name} --dbpath {path/config} --port 50002

### Init mongos
mongos --configdb {replica name}/localhost:50001,localhost:50002 --port 27017

### Add sharding server
### mongos 접속 후 입력
mongos> sh.addShard("localhost:30001");
mongos> sh.addShard("localhost:30002");
mongos> sh.addShard("localhost:30003");

### Check sharding server's status
mongos> sh.status()

### Enable database and collection at sharding server
mongos> sh.enableSharding("{database}")
mongos> sh.shardCollection("{database}.{collection}", {_id: "hashed"})

MongoDB Service가 system boot 시 자동으로 시작하도록 변경

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
systemctl enable mongod.service
### or
systemctl enable mongodb.service

### 위의 두 개가 안될 경우
sudo vi /etc/systemd/system/mongodb.service

### Edit service file
[Unit]
Description=MongoDB Database Service
Wants=network.target
After=network.target

[Service]
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
User=mongodb
Group=mongodb
StandardOutput=syslog
StandardError=syslog

### Restart mongod
sudo service mongod start|stop|restart

DB path 변경

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
### Stop mongoDB
Sudo service mongod stop

### Copy all data to new disk with permission
Sudo cp -Rp mongodb /new/disk/mongodb/

### Add owner to new disk
Sudo chown mongodb:mongodb /new/disk/mongodb/

### Edit config file
sudo vi /etc/mongod.conf
---
### 아래 부분 수정
dbpath: /new/disk/mongodb
---

### Restart mongoDB
Sudo service mongod start

### 기동이 안될 경우
### 1. acl이 설정되어 있는지 확인(권한 체크)
### 2. rm /new/disk/mongodb/mongod.lock 해보기

MongoDB client 명령어

Query 구조는 기본적으로 Javascript 문법을 따른다

1
2
3
4
5
6
7
// 특정 Collection 검색 및 삭제(정규식 사용)
regExp = /test/;
db.getCollectionNames().filter(function(name){
  return name.match(regExp)
}).forEach(function(name){
  db.getCollection(name).drop()
});

참조 링크

How to install mongodb on debian 9 - 1

How to install mongodb on debian 9 - 2

MongoDB 샤딩 적용하기

Sharding methods

데이터 위치 변경하기

Database/Collection/Document 생성 및 제거

This post is licensed under CC BY 4.0 by the author.

Anaconda 설치 및 사용법

RDBMS, 그리고 SQL