autoCompact
정의
구문
명령은 다음과 같은 구문을 가집니다:
db.runCommand( { autoCompact: <boolean>, freeSpaceTargetMB: <int>, // Optional runOnce: <boolean>, // Optional } )
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
참고
이 명령은 현재 MongoDB Atlas 클러스터에서 지원되지 않습니다.
명령 필드
이 명령은 다음과 같은 선택적 필드를 사용할 수 있습니다.
필드 | 유형 | 설명 |
---|---|---|
| Integer | 선택 사항. 압축 을 계속 진행하기 위해 복구할 수 있어야 하는 최소 저장 공간(MB)을 지정합니다. 기본값: 20 |
| 부울 | 선택 사항.
|
필수 권한
인증 을 시행하는 클러스터의 경우, 클러스터 에 대해 compact
권한 조치 을 가진 사용자로 인증해야 합니다. hostManager
역할 은 autoCompact
실행 에 필요한 권한을 제공합니다.
행동
차단
autoCompact
명령 자체는 읽기 및 쓰기를 차단 하지 않지만 배경 압축 은 compact
명령과 동일한 차단 동작을 적용합니다.
또한 배경 압축 이 활성화된 상태에서 autoCompact
를 호출하면 MongoDB 에서 오류를 반환합니다. autoCompact
를 다시 시작하거나 다른 옵션으로 다시 실행 해야 하는 경우 먼저 현재 배경 압축 작업을 중지해야 합니다.
db.runCommand( { autoCompact: false } )
현재 배경 압축 이 비활성화되면 새 구성으로 autoCompact
를 다시 시작할 수 있습니다.
제외된 컬렉션
oplog 가 있는 경우 MongoDB 는 이를 배경 압축 에서 제외합니다.
성능 고려 사항
트래픽이 적은 기간에는 autoCompact
를 실행 것이 좋습니다.
압축은 정기적으로 데이터베이스를 검사하므로 동기화 오버헤드가 발생할 수 있습니다. 트래픽이 많은 데이터베이스에서는 백업 수행과 같은 운영 작업이 지연되거나 방해받을 수 있습니다. 예기치 않은 중단을 방지하려면 백업을 수행하기 전에 압축을 비활성화하세요.
복제본 세트
복제본 세트 에 저장된 컬렉션 및 인덱스에 대해 배경 압축 을 실행 수 있습니다. 그러나 다음 사항에 유의하세요.
프라이머리 노드 는
autoCompact
명령을 세컨더리 노드에 복제하지 않습니다.세컨더리 노드 는 배경 압축 이 실행 동안 데이터를 복제할 수 있습니다.
배경 압축 이 실행 되는 동안 읽기 및 쓰기가 허용됩니다.
샤딩된 클러스터
autoCompact
mongod
인스턴스에만 적용됩니다. 샤딩된 된 환경에서는 각 샤드 에서 개별적으로 autoCompact
를 실행 합니다.
mongos
인스턴스 에 대해 autoCompact
를 실행 수 없습니다.