Chapter1 : The Mongod
데몬(daemon)은 멀티태스킹 운영 체제에서 사용자가 직접적으로 접근하지 않고,
백그라운드에서 여러 작업을 수행하는 프로그램을 의미한다.
대부분 뒤에 d를 붙여 daemon인 것을 나타낸다.
밑에 설명하게 될 mongod 의 경우도 'd'는 daemon을 의미하게 된다.
mongod는 MongoDB 시스템의 메인 데몬(daemon) 프로세스이다.
데이타 요청, 접근에 대해 핸들링/관리를 진행하고, 백그라운드 관리 작업을 수행한다.
데몬은 사용자가 직접적으로 접근하지 않는다.
mongod 와 통신하기 위해서는 아래와 같은 방법을 사용한다.
mongod --config /opt/homebrew/etc/mongod.conf
이런 식으로 호출해야함.. (Mac M1 케이스)
Lab: Launching Mongod
mongod -port 27000
ex ) mongod --dbpath /data/db --logpath /data/log/mongod.log
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
~
WiredTiger 스토리지 엔진
https://rastalion.me/mongodb%EC%9D%98-wiredtiger-%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80-%EC%97%94%EC%A7%84
Basic Commands
로그나 프로파일링/ 보안 기능도 설명.. 딱히 정리할 필요 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" } ]
}
)
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