몽고디비(5)
-
우분투 방화벽 설정과 MongoDB bindIp 설정 ( Mongodb 방화벽 설정 )
mongodb의 기본 포트 27017 기준으로 설정을 알려주겠다. 방화벽 설정이 되지 않으면 아래와 같은 에러가 난다. MongoNetworkError: failed to connect to server [서버 IP 주소]:[포트 번호] on first connect [MongoNetworkError: connect ECONNREFUSED [서버 IP 주소]:[포트 번호]] 1. 방화벽 상태 - 실행 여후 확인 sudo ufw status Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6) - 27017 포트가 없는 것을 확인 할 수 있다. 2. 우분투 방화벽 설정 sudo ufw..
2023.04.16 -
MongoDB User 추가 하는 방법
0. 서론 - 몽고디비는 당연히 유저 추가가 된다. 안된다고 종종 그러는 이상한 아저씨들 만나면...욱한다 ㅋㅋ - 그래서 오늘은 사용자 추가하는 방법을 알려주겠다. 1. mongodb 사용자(user) "my_name" 을 추가해 보겠다. 1-1. 먼저 당연히 있겠지만.... database 가 없으면.. 추가해 준다. ( 없으면, 사용자(user) 추가가 되지 않는다. ) use my_database 1-2 사용자(user) 추가 한다. db.createUser({ user: "my_name", pwd: "mypassword", roles: [{ role: "readWrite", db: "my_database" }] }) 위 사용자는 아이디는 my_name 이고, 패스워드는 mypassword 이다...
2023.04.05 -
MongoDB 모니터링 명령어 ( currentOp )
0. currentOp 역할- 작업의 상태 모니터링 가능 - 현재실행 중인 작업 조회 가능 - 과도한 리소스를 작업 조회 가능 - 결과적으로 MongoDB의 성능 최적화에 도움 1. allUesrs : 시스템의 모든 사용자의 작업의 정보를 반환db.currentOp({allUsers: true}) 2. idleConnections : idle한 커넥션 정보 반환- idle 이란 : 해당 커넥션과 연결된 클라이언트가 아무런 요청을 하지 않고 대기한 상태 ( 대분의 커넥션은 작업 후, 해당 커넥션을 끊음 -> 하지만, 일부는 끊지 않고 유지 함 - 이 경우, 해당 작업을 종료 시킬지 말지 결정해야 함 db.currentOp({idleConnections: true}) 3. inprog : 기본 옵션으로 설정..
2023.03.29 -
mongodb group by 샘플
1. 몽고디비 그룹바이 문법 $group 파이프라인 연산자는 MongoDB에서 집계(aggregate)를 수행하는데 사용됩니다. 이 연산자는 문서들을 그룹화하고 그룹화된 문서들의 합계, 평균, 최대, 최소 등의 값을 계산할 수 있습니다. $group 파이프라인 연산자는 다음과 같은 구문을 사용합니다. { $group: { _id: , // 그룹화할 기준 필드 : { : }, ... } } 여기서 _id 필드는 그룹화할 기준 필드를 나타내며, 는 계산된 결과를 저장할 필드를 나타냅니다. 는 계산 방법을 나타내며, 은 계산 대상 필드를 나타냅니다. 예를 들어, 다음은 orders 컬렉션에서 status 필드를 그룹화하고 각 그룹의 합계를 계산하는 쿼리입니다: db.orders.aggregate([ { $gr..
2023.03.09 -
MongoDB 데이터 삭제 후, 용량 반환 방법 ( compact 명령어 )
그냥 요즘 MongoDB를 모니터링 하던 중.. 옛 추억이 떠올라 글을 하나 작성하기로 했다. DataBase란 차고로 DML이 꽃이라고 개인적으로 생각한다. 1. DML이란 무엇인가? 그냥 단순하게 말해서, 우리가 생각하는 데이터 핸들링 방법이다. 즉, 조회하고(SELECT), 수정하고(UPDATE), 저장하고(INSERT), 지우는(DELETE) 기능!!! 근데 몽고디비를 관리하는데, 왜 이런게 생각 났냐 하면, 바로 delete 이슈이다. 성능이 느리다거나 그런 이슈가 아니다. Delete를 하고 Disk를 반환하지 않는다. MongoDB 운영 당시 Disk 사용률이 78%까지 올라간 상황이였다. 아직 시간은 있었으나, 개발서버로 사용하던 MongoDB의 디스크 사용량이 3개월도 안되서 가득차가고 ..
2021.04.09