자체 관리형 배포서버를 위한 저널링 구성
이 페이지의 내용
MongoDB 는 쓰기 (write) 작업 내구성을 보장하기 위해온디스크 저널 에 쓰기 (write) 로깅 을 사용합니다.
WiredTiger 스토리지 엔진은 크래시 후 일관된 상태를 보장하기 위해 저널링이 필요하지 않습니다. 데이터베이스는 복구 중에 일관된 마지막 체크포인트로 복원됩니다. 그러나 체크포인트 사이에 MongoDB가 예기치 않게 종료되면, 마지막 체크포인트 이후에 발생한 기록을 복구하기 위해 저널링이 필요합니다.
mongod
가 예기치 않게 중지되면 저널에 기록된 모든 내용을 복구할 수 있습니다. MongoDB는 다시 시작할 때 쓰기 연산을 다시 적용하고 일관된 상태를 유지합니다. 기본적으로 저널에 작성되지 않은 쓰기 손실의 최대 범위는 지난 100밀리초 내에 이루어진 쓰기에 실제 저널 쓰기를 수행하는 데 걸리는 시간을 더한 값입니다. 기본값에 대한 자세한 내용은commitIntervalMs
를 참조하세요.
절차
커밋 승인 받기
저널 상태 모니터링
serverStatus
명령/db.serverStatus()
메서드는 저널에 대한 통계가 포함된 wiredTiger.log
를 반환합니다.
예기치 않은 종료 후 데이터 복구
충돌 후 다시 시작하면 MongoDB는 서버를 사용할 수 있게 되기 전에 저널 디렉토리에 있는 모든 저널 파일을 재생합니다. MongoDB가 저널 파일을 재생해야 하는 경우 mongod
는 로그 출력에 이러한 이벤트를 기록합니다.
--repair
를 실행할 이유가 없습니다.
WiredTiger 저널 압축기 변경
WiredTiger 스토리지 엔진을 사용하는 경우 MongoDB는 기본적으로 저널에 snappy
압축기를 사용합니다. mongod
인스턴스에 대해 다른 압축 알고리즘 또는 압축 없음을 지정하려면 다음을 수행해야 합니다.
팁
이 절차 중에 mongod
오류가 잘못 종료되는 경우 이전 압축기 설정을 사용하여 저널 파일을 사용하여 복구해야 합니다. 복구가 완료되면 절차를 다시 시도할 수 있습니다.
독립형 mongod
인스턴스에 대한 저널 압축기를 변경하려면 다음 절차를 따르세요.
storage.wiredTiger.engineConfig.journalCompressor
을(를) 새 값으로 업데이트합니다.구성 파일 대신 명령줄 옵션을 사용하는 경우 아래 재시작 시
--wiredTigerJournalCompressor
명령줄 옵션을 업데이트해야 합니다.mongod
인스턴스 를 완전히 종료합니다. 예를 예시mongosh
을 인스턴스 에 연결하고db.shutdownServer()
를 실행합니다.db.getSiblingDB('admin').shutdownServer() 프로세스가 더 이상 실행되지 않는 것을 확인했으면
mongod
다음과 같이 인스턴스를 다시 시작합니다.구성 파일을 사용하는 경우:
mongod -f <path/to/myconfig.conf> 구성 파일 대신 명령줄 옵션을 사용하는 경우
--wiredTigerJournalCompressor
을(를) 새 값으로 업데이트합니다.mongod --wiredTigerJournalCompressor <differentCompressor|none> ...
복제본 세트 멤버에 대한 저널 압축기를 변경하려면 다음 절차를 따르세요.
mongod
인스턴스 를 완전히 종료합니다. 예를 예시mongosh
를 인스턴스 에 연결하고db.shutdownServer()
를 실행합니다.db.getSiblingDB('admin').shutdownServer() storage.wiredTiger.engineConfig.journalCompressor
을(를) 새 값으로 업데이트합니다.구성 파일 대신 명령줄 옵션을 사용하는 경우 아래 재시작 중에 명령줄 옵션을 업데이트 해야 합니다.
mongod
인스턴스 다시 시작합니다.구성 파일을 사용하는 경우:
mongod -f <path/to/myconfig.conf> 구성 파일 대신 명령줄 옵션을 사용하는 경우
--wiredTigerJournalCompressor
을(를) 새 값으로 업데이트합니다.mongod --wiredTigerJournalCompressor <differentCompressor|none> ...
샤드 복제본 세트 또는 config 서버 복제본 세트 의 멤버에 대한 저널 압축기를 변경하려면 다음 절차를 따르세요.
mongod
인스턴스 를 완전히 종료합니다. 예를 예시mongosh
를 인스턴스 에 연결하고db.shutdownServer()
를 실행합니다.db.getSiblingDB('admin').shutdownServer() storage.wiredTiger.engineConfig.journalCompressor
을(를) 새 값으로 업데이트합니다.구성 파일 대신 명령줄 옵션을 사용하는 경우 아래 재시작 중에 명령줄 옵션을 업데이트 해야 합니다.
mongod
인스턴스 다시 시작합니다.구성 파일을 사용하는 경우:
mongod -f <path/to/myconfig.conf> 구성 파일 대신 명령줄 옵션을 사용하는 경우
--wiredTigerJournalCompressor
을(를) 새 값으로 업데이트합니다.mongod --shardsvr --wiredTigerJournalCompressor <differentCompressor|none> --replSet ...