mongodb 저널 파일은 삭제해도 안전한가요?
3.1G 저널 파일을 삭제하면sudo service mongodb restart실패합니다.그러나 이 파일은 공간을 너무 많이 차지합니다.어떻게 하면 이 문제를 해결할 수 있을까요?어떻게 하면 제거할 수 있나요?
bash$ du -sh /var/lib/mongodb/*
4.0K _tmp
65M auction_development.0
128M auction_development.1
17M auction_development.ns
3.1G journal
4.0K mongod.lock
TL;DR: 두 가지 옵션이 있습니다.를 사용합니다.--smallfilesMongoDB 시작 시 저널 파일 크기를 128MB로 제한하거나 를 사용하여 저널링을 해제하는 시작 옵션--nojournal선택.사용.--nojournal일반적으로 프로덕션에서는 좋지 않은 아이디어이며 개발 시에도 다른 쓰기 문제를 사용하는 것이 타당하기 때문에 개발 시 코드와 생산 시 코드가 다를 수 없습니다.
긴 답변: 아니요, 저널 파일을 삭제하는 것은 안전하지 않습니다.저널링의 개념은 다음과 같습니다.
글이 들어옵니다.이 쓰기를 영속적으로(및 데이터베이스의 내구성을 유지하려면) 쓰기가 어떻게든 디스크에 도달해야 합니다.
안타깝게도 RAM에 쓰는 것보다 디스크에 쓰는 데 시간이 오래 걸리기 때문에 데이터베이스는 딜레마에 빠집니다.예기치 않은 셧다운으로 인해 데이터가 손실되기 때문에 디스크에 쓰지 않는 것은 디스크에 쓰지 않는 것은 위험합니다.그러나 쓰기 작업마다 디스크에 쓰기 작업을 수행하면 데이터베이스의 성능이 크게 저하되어 실제 용도로 사용할 수 없게 됩니다.
이제 데이터베이스는 데이터 파일 자체에 쓰는 것이 아니라 모든 요청에 대해 쓰는 것이 아니라 저널 파일에 추가되어 실제 데이터 파일에 아직 커밋되지 않은 모든 작업을 저장합니다.이는 파일이 항상 읽고 쓰기 때문에 이미 '핫' 상태이고, 파일 집합이 아닌 하나의 파일이기 때문에 훨씬 더 빠릅니다. 마지막으로 보류 중인 모든 작업을 기본적으로 100ms마다 일괄적으로 쓰기 때문입니다.중간에 이 파일을 삭제하면 대혼란을 일으킬 수 있습니다.
니모신스의 답변에서 설명한 바와 같이 저널링은 스토리지 엔진에 필수적입니다.다행히 어느 정도 컨트롤이 가능합니다.MMAPv1 스토리지 엔진은 MongoDB 3.2까지 기본 제공되었습니다.그 후, WiredTiger는 최고의 엔진이 되었습니다.이 답변의 아래쪽에 더 많은 정보가 있습니다.
MMAPv1
MongoDB < 2.6 (비 YAML 구성)
개발 서버에서는, 다음의 순서를 사용했습니다.
cp -p /etc/mongodb.conf /etc/mongodb.conf.orig
vi /etc/mongodb.conf
자, 이제
smallfiles=true
mongodb.conf에 입력한 다음 저장. small files는 저널 파일을 128MB로 제한합니다.
service mongodb stop
rm -rf /var/lib/mongodb/journal/*
service mongodb start
MongoDB > = 2.6 (YAML 구성)
MMAPv1을 YAML 구성 스타일과 함께 사용하는 경우 위와 같은 절차를 사용하여 설정을 백업합니다.단,
mmapv1:
설정 블록, 삽입
smallFiles: true
그 후 위와 같이 진행하여 저널을 삭제하면서 서버를 재시작합니다.
WiredTiger(MongoDB > = 3.0, 3.2 이후 기본값)
개발 기계에서는 저널 압축이 기본적으로 활성화되어 있기 때문에 WiredTiger 아래의 저널 파일은 MMAPv1 아래의 저널 파일보다 약간 작아야 합니다.문서에 따르면 "MongoDB용 WiredTiger 저널 파일의 최대 크기 제한은 약 100MB입니다."60초 간격으로 체크포인트(스냅샷 데이터를 디스크에 쓰는 것)를 작성하거나 2기가바이트 저널 데이터를 작성합니다.
따라서 데이터베이스에서 적은 양의 요청만 실행하는 경우(변경할 데이터가 거의 없음) WiredTiger를 사용하는 저널 파일은 100MB의 낮은 배수를 초과할 수 없습니다.그러나 저널 파일의 크기는 구성할 수 없는 것 같습니다.
mongodb그 이후로 진화하고 있습니다.이것으로 v3.4.1은 안정적입니다.
현재 v3.2를 사용하고 있는 방법은 다음과 같습니다.# mmapv1:음음음같 뭇매하다
mmapv1:
smallFiles: true
.storage Options reference/configuration-options
꼭 비워주세요journal
sudo service mongodb stop
sudo rm -rf /var/lib/mongodb/journal/*
sudo service mongodb start
언급URL : https://stackoverflow.com/questions/19533019/is-it-safe-to-delete-the-journal-file-of-mongodb
'programing' 카테고리의 다른 글
| const 또는 in React 컴포넌트 (0) | 2023.03.20 |
|---|---|
| 파일에서 AngularJs 변수로 HTML 템플릿 로드 (0) | 2023.03.20 |
| WordPress REST API의 403 "rest_forbidden" 오류(설정 전용) (0) | 2023.03.20 |
| 각도 5 - 클립보드에 복사 (0) | 2023.03.20 |
| 모든 포스트 데이터와 포스트 메타를 저장한 후 발생하는 WordPress 훅은 무엇입니까? (0) | 2023.03.20 |