본문 바로가기
IT KNOWLEDGE

MongoDB에 대하여

by BTC_오사원 2022. 7. 15.

안녕하세요! 임오군란과 민씨팀의 오입니다.

이번 주제는 mongoDB에 대한 주제로 포스팅 하겠습니다.

 

MongoDB란?

→ 무료 오픈소스 기반의 데이터베이스 관리 시스템(DBMS)이다. 오라클(Oracle), MySQL, Cubrid 등의 관계형 데이터베이스 관리 시스템(DBMS)과 달리, MongoDB는 빅데이터와 같은 비정형 데이터 분석에 주로 사용되는 NoSQL의 일종이다. MongoDB는 유연한 스키마를 가진 JSON 방식의 문서에 데이터를 저장한다.

 

MongoDB 주요특징?

1. 고성능

  • 임베디드 데이터 모델 지원은 데이터베이스 시스템의 I/O활동을 줄임
  • 인덱스는 더 빠른 쿼리를 지원하며 포함된 문서 및 배열의 키를 포함

2. 쿼리 API

  • 데이터 집계
  • 텍스트 검색 및 지리 공간 쿼리

3. 고가용성 : 복제본 세트라고 하는 MongoDB의 복제 기능은 제공

  • 자동 장애 조치
  • 데이터 중복

※ 복제본 세트 : 동일한 데이터 세트를 유지관리하여 중복성을 제공하고 데이터 가용성을 높이는 MongoDB 서버 그룹

 

4. 수평적 확장성

  • 샤딩은 머신 클러스터에 데이터를 분산
  • 3.4부터 MongoDB는 샤드 키를 기반으로 데이터 영역 생성을 지원. 균형 잡힌 클러스터에서 MongoDB는 영역에서 다루는 읽기 및 쓰기를 영역 내부의 샤드로만 보냄.

5. 다중 스토리지 엔진 지원

  • WiredTiger 스토리지 엔진
  • 인메모리 스토리지 엔진

 

MongoDB설치

설치 하기전(root 계정에서 실행)

1. SELinux 비활성화

2. Ulimits settings(단일 사용자가 너무 많은 시스템 자원을 사용하는 것을 방지, 한계값이 낮으면 정상적인 MongoDB 작업 중에 문제 발생)

한계값 수정

  • hard nproc 64000
  • soft nproc 64000
  • hard nofile 64000
  • soft nofile 64000

3. Transparent Huge Pages 비활성화

enabled와 defrag에 있는 속성이 ‘always’로 설정되어 있는데, 이것을 ‘never’로 변경하라는 의미

ex)

echo never > /sys/kernel/mm/transparent_hugepage/enabled

echo never > /sys/kernel/mm/transparent_hugepage/defrag

chmod +x /etc/rc.local

 

설치

1. MongoDB 수동으로 설치하기 위한 dependencies 설치

→ yum install libcurl openssl wget

 

2. http://www.mongodb.com/download-center에서 file을 받은 후 압축을 푼다

→ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.3.tgz

→ tar -zxvf mongodb-linux-*-4.0.3.tgz

 

3. data file, log file이 저장될 directory를 생성하고, 압축을 푼 directory에 있는 file들을 생성한 directory 복사

→ mkdir -p mongodb/data mongodb/log

→ cp -r mongodb-linux-x86_64-rhel70-4.0.3/* mongodb

 

4. MongoDB config file 생성

5. 사용자가 쉽게 데몬 구동과 접속을 할 수 있도록 alias 생성

→ vi .bashrc

alias mongod='/root/mongodb/bin/mongod'

alias mongo='/root/mongodb/bin/mongo’

source .bashrc

 

6. MongoDB 데몬 실행

→ mongod --config /etc/mongod.conf

 

7. MongoDB 접속

->mongo

댓글