M103 : The Mongod

김하영·2022년 9월 27일
0

Chapter1 : The Mongod

  • What's a daemon?

데몬(daemon)은 멀티태스킹 운영 체제에서 사용자가 직접적으로 접근하지 않고,
백그라운드에서 여러 작업을 수행하는 프로그램을 의미한다.

대부분 뒤에 d를 붙여 daemon인 것을 나타낸다.

밑에 설명하게 될 mongod 의 경우도 'd'는 daemon을 의미하게 된다.

  • What is Mongod?

mongod는 MongoDB 시스템의 메인 데몬(daemon) 프로세스이다.
데이타 요청, 접근에 대해 핸들링/관리를 진행하고, 백그라운드 관리 작업을 수행한다.

  • How to communicate with Mongod?

데몬은 사용자가 직접적으로 접근하지 않는다.
mongod 와 통신하기 위해서는 아래와 같은 방법을 사용한다.

  1. mongoShell을 통해 여러가지 데이터 요청문(쿼리/어그리게이션 쿼리 등)을 통해 접근
  2. 몽고에서 제공하는 Mongo Compass, API를 제공하는 Drivers(node, Swift, Java etc)를 통해 접근

  • Default Configuration
  1. port:27017
  2. dbpath : /data/db
  3. bind_ip : localhost
  4. auth : disabled

mongod --config /opt/homebrew/etc/mongod.conf

이런 식으로 호출해야함.. (Mac M1 케이스)

Lab: Launching Mongod

mongod -port 27000

  • Command Line & Config File option

ex ) mongod --dbpath /data/db --logpath /data/log/mongod.log

  • yaml 형식의 config file 옵션
storage:
  dbPath: "/data/db"
systemLog:
  path: "/data/log/mongod.log"
  destination: "file"
replication:
  replSetName: M103
net:
  bindIp : "127.0.0.1,192.168.103.100"
tls:
  mode: "requireTLS"
  certificateKeyFile: "/etc/tls/tls.pem"
  CAFile: "/etc/tls/TLSCA.pem"
security:
  keyFile: "/data/keyfile"
processManagement:
  fork: true

Lab: Configuration File

systemLog:
  destination: file
  path: /opt/homebrew/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /opt/homebrew/var/mongodb
net:
  port: 27000
  bindIp: 0.0.0.0
  ipv6: true
security:
	authorization: disabled
~                    

  1. db.< method >() : db
  2. rs.< method >() : replica set
  3. sh.< method >() : shard
  • 로그나 프로파일링/ 보안 기능도 설명.. 딱히 정리할 필요 x

  • Roles in MongoDB

유저에 롤을 부여하여 mongoDB 에 접근할 수 있다.

Lab: Creating First Application User

mongo --port 27000 admin -u m103-admin -p m103-pass

use admin

db.createUser(
{ user: "m103-application-user",
pwd: "m103-application-pass",
roles: [ { db: "applicationData", role: "readWrite" } ]
}
)

  • Server Tools Overview

  • mongostat : MongoDB가 동작하는 내부 상황(CRUD/메모리상태) 에 대한 정보를 확인하는 툴

  • mongodump : 데이터를 백업
    ex) mongodump --out ~/mongo_backup --host 127.0.0.1 --port 27017

  • mongorestore : 백업 데이터를 복구
    ex) mongorestore --host 127.0.0.1 --port 27017 --db local /mongo_backup/local

  • mongoexport : 데이터를 JSON 또는 CSV 형식으로 내보냄

  • mongoimport : JSON 또는 CSV 형식의 데이터를 MongoDB 에 import

mongoimport --authenticationDatabase admin -u "m103-application-user" -p "m103-application-pass" --port 27000 --db applicationData --collection products --file /dataset/products.json

참고 : https://university.mongodb.com/

profile
Back-end Developer

0개의 댓글