목록DataBase/mongodb (6)
만족
https://startatage30.tistory.com/12 [MongoDB] 우분투(ubuntu 20.04)에 (몽고디비)mongodb 설치 1. wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - 2. echo "deb [ arch=amd64, arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list 3. sudo ap startatage30.tistory.com

몽고디비를 캐시서버 역할로 사용중이다. 약 1년쯤 되었는데, 상당한 용량이 쌓여 오랫동안 사용되지 않은 데이터는 정리했다. # mongo shell use DB_NAME db.COLLECTION.deleteMany(...); 대략 이런 느낌으로 해서 6달 이상 사용되지 않은 데이터 약 100~200만개를 삭제했다. 그런데 삭제가 완료되었음에도 디스크 용량을 뱉어내질 않는다. 몽고디비는 공간이 남더라도 이후 쓰여질 document를 위해 disk space를 반환하지 않는다고 한다. 디스크 용량 회수 use DB_NAME db.runCommand({ compact: 'COLLECTION_NAME' }); 을 사용하여 해당 컬렉션의 비어 있는 디스크 공간을 회수할 수 있다. 이것을 모든 컬렉션에 대해 반복하..
몽고디비 커넥션이 갑자기 끊기고 작동하지 않았다. mongod 커맨드로 로그를 확인해본 결과 제목과 같은 오류를 얻을 수 있었다. NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock 해결법 로그에 찍힌 저 파일에 접근하지 못한다는 뜻이다. 따라서 파일의 소유권을 올바르게 변경해 주거나, 삭제하면 다시 시작할 때 몽고가 알아서 복구한다. //solution 1 sudo chown USER_NAME /tmp/mongodb-27017.sock //solution 2 sudo rm /tmp/mongodb-27017.sock 이후 몽고를 재시작한다. sudo service mongod restart https://stackove..
collection 이름이 matches인 데이터셋에서 2021-06-30 이전에 작성된 모든 데이터를 출력하려고 한다. 작성 날짜는 cacheDate라는 attribute에 저장되어 있고 date 타입이다. db.matches.find({cacheDate: {$lt: ISODate("2021-06-30")}}) $lt는 less than의 약자다. 2021-06-30 이후 작성된 모든 데이터를 출력하려면 $gt(greater than)을 사용하면 되겠다.
mongodb는 외부 접속이 기본적으로 막혀 있다. 외부에서 DB 접속 클라이언트를 사용해 접속하기 위해서는 조금 설정을 바꾸어 주어야 한다. https://ianlondon.github.io/blog/mongodb-auth/ How to connect to your remote MongoDB server I have MongoDB running on my Ubuntu server in Amazon EC2. Since there’s no simple all-in-one tutorial out there explaining how to set up user authentication for Mongo so that you can read and write to your MongoDB server from ..

서버에서 MongoDB를 사용한 이후 별로 무거운 작업이 없음에도 CPU 로드율이 미친듯이 날뛰는 문제가 포착되었다. MongoDB를 사용하기 이전에는 볼 수 없었던 문제인데다, 쿼리들 역시 단순히 특정 컬럼을 하나 찝어 일치하는 row 하나를 불러오는 아주 간단한 작업이였기 때문에 어떤 이유로 저런 그래프가 그려지는지 궁금해졌다. 해당 문제에 대해 조사하던 중, 크게 세 가지 원인이 있음을 알아냈다. 1. 거대한 Log 사이즈 mongodb는 기본적으로 /var/log/mongodb/mongod.log 에 로그를 저장한다. 그런데 해당 로그 사이즈가 너무 거대해질 경우(GB단위 이상) 성능에 큰 영향을 끼친다고 한다. cd /var/log/mongodb 로 로그파일이 있는 경로로 이동하고, ls -al..