AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

MongoDB 9.0릴리스 노트

수정된 문제:

수정된 문제:

이 릴리즈에는 중요한 보안 및 신뢰성 개선 사항이 포함되어 있습니다.

중요

MongoDB 9.0.1 에 대한 수정 사항이 포함되어 있습니다.

MongoDB 보안 업데이트에 대한 최신 정보는 MongoDB 보안 게시판을 참조하세요.

수정된 문제:

MongoDB 9.0부터는 changeStreamPreImages.purgingJob.docsDeleted 및 changeStreamPreImages.purgingJob.bytesDeleted serverStatus 지표 정확한 값이 아닌 추정치를 보고할 수 있습니다. 이러한 추정치는 config.system.preimages 컬렉션 에 대한 크기 및 개수 정보를 사용할 수 없는 경우에 발생합니다. 자세한 내용은 changeStreamPreImages를 참조하세요.

MongoDB 9.0은 또한 새로운 changeStreamPreImages.markerCreation serverStatus 문서 추가합니다. 이 문서 사전 이미지를 제거 데 사용되는 초기 잘림 정보를 빌드 사전 이미지 샘플링 단계와 관련된 지표 보고합니다. 자세한 내용은 changeStreamPreImages를 참조하세요.

MongoDB 9.0부터 서버 외부 클라이언트에 대해 동시에 열리는 다중 문서 트랜잭션 수를 제한합니다. 열려 있는 트랜잭션의 수가 maxConcurrentMultiDocumentTransactions 매개변수( 기본값 10000)로 설정하다 한도에 도달하면, 서버 새로운 다중 문서 트랜잭션을 거부하고 TooManyOpenTransactions 오류를 반환합니다. 자세한 학습 은 maxConcurrentMultiDocumentTransactions를 참조하세요.

MongoDB 9.0부터 MongoDB 단일 쿼리 작업에서 사용할 수 있는 총 메모리 양을 제한합니다. 기본값 으로 제한은 1기가바이트 또는 서버 프로세스 에서 사용할 수 있는 메모리의 20% 중 더 큰 값입니다. 제한을 초과하는 작업은 ExceededMemoryLimit 또는 QueryExceededMemoryLimitNoDiskUseAllowed로 실패합니다. 이전 버전에서는 작업에 무제한의 메모리를 사용할 수 있었습니다.

단계당 100메가바이트 메모리 제한과 개별 단계의 디스크 유출 동작은 변경되지 않습니다. 자세한 학습 은 작업별 메모리 제한을 참조하세요.

MongoDB 9.0부터 서버 측 JavaScript 함수($accumulator, $function, $where)는 더 이상 사용되지 않습니다. MongoDB 9.0는 이전 버전보다 강력한 샌드박싱 및 격리 를 통해 보안을 개선하는 WebAssembly(WASM) 기반 JavaScript 엔진 사용하여 이러한 함수를 다시 활성화합니다. 이러한 함수는 이전에 MongoDB 8.0에서 더 이상 사용되지 않습니다.

서버 측 JavaScript ppc64le 아키텍처에서 사용할 수 없습니다. 자세한 학습 은 서버 측 JavaScript 참조하세요.

MongoDB 9.0은 다음 serverStatus 지표 추가합니다.

MongoDB 9.0은 MongoDB 8.3에 도입된 shardingStatistics.databaseVersionUpdateCounters 문서 의 이름을 shardingStatistics.databaseShardingMetadataStatistics로 변경합니다. MongoDB 9.0는 또한 이름이 변경된 문서 의 필드를 새로운 지표 설정하다 로 바꿉니다.

MongoDB 9.0이 metrics.changeStreams.showExpandedEvents 지표의 이름을 metrics.changeStreams.option.showExpandedEvents로 변경합니다. 메트릭을 이름으로 모니터 경우 새 이름을 사용하도록 모니터링 업데이트 .

MongoDB 9.0.1는 세션 카탈로그의 파티션 수를 지정하는 sessionCatalogPartitions 매개변수를 추가합니다. 세션 카탈로그를 분할하면 세션 수가 많을 때 락 경합이 줄어듭니다.

MongoDB 9.0은 다음과 같은 checkMetadataConsistency 불일치 유형을 추가합니다.

MongoDB 9.0은 ShardCatalogCacheCollectionMetadataMismatch 불일치 유형을 제거합니다.

MongoDB 9.0은 checkMetadataConsistency 명령에 performStrictChunkChecksIfBelowThreshold 옵션을 추가합니다. 이 옵션을 사용하여 샤드의 청크 비교를 위한 청크 수 임계값을 설정하다 . 임계값 미만인 경우 명령은 전체 비교를 수행합니다. 그 이상에서는 명령이 더 가볍고 카운트 전용 비교를 수행합니다. 자세한 내용은 청크 확인 임계값을 참조하세요.

MongoDB 9.0부터 time series 컬렉션 에서 find, aggregate 또는 listIndexes 명령을 실행 응답의 cursor.ns 필드 원래의 사용자 대면 네임스페이스 반환합니다. 타겟팅합니다. 이전 버전에서는 서버 내부 네임스페이스 반환할 수 있었습니다.

MongoDB 9.0는 net.wireObjectCheck 구성 옵션과 해당 --objcheck 및 --noobjcheckand CLI 인수를 더 이상 사용하지 않습니다. 9.0부터, MongoDB 서버 기본값 으로 수집하는 모든 BSON 객체의 유효성을 검사합니다. 서버 유효하지 않은 BSON 데이터를 수신하면 MongoDB 오류를 반환합니다.

MongoDB 9.0는 constraint의 새로운 스키마 유효성 검사 수준을 도입합니다. constraint 유효성 검사 수준을 사용하면 MongoDB 모든 문서 삽입 및 업데이트에 유효성 검사 규칙을 적용하고 컬렉션 의 모든 문서 규칙을 충족하도록 보장 . 자세한 내용은 제약 조건 유효성 검사 지정을 참조하세요.

MongoDB 9.0은 다음과 같은 mongosh 메서드를 도입합니다:

참고

When you upgrade to 9.0, clusters with more than 5,000 time series collections in a single database may take longer to update and face additional write latency spikes. To reduce this impact, drop or delete any unnecessary time series collections.

MongoDB 9.0부터 시계열 컬렉션을 버킷으로 압축된 Time Series 데이터 포함하는 단일 네임스페이스 로 저장합니다. Time series 컬렉션은 더 이상 쓰기 가능한 비실체화 뷰가 아닙니다.

MongoDB 9.0부터는 time series 컬렉션의 이름을 renameCollection(으)로 변경할 수 있습니다.

MongoDB 9.0은 $queryStats 출력을 업데이트하여 지표 조직 간소화합니다. 이 업데이트 다음과 같은 새로운 출력 필드가 포함됩니다.

필드
설명

metrics.cursor

커서 및 배치 프로토콜 과 관련된 지표 포함된 문서

metrics.queryExec

쿼리 실행과 관련된 지표 포함된 문서

metrics.queryPlanner

쿼리 플래너와 관련된 지표 포함된 문서

metrics.writes

작업 쓰기와 관련된 지표 포함된 문서

새 출력 구조에 대한 자세한 내용은 $queryStats 출력을 참조하세요.

9.0부터 MongoDB update, insert 및 delete 명령에 대한 쿼리 통계를 수집하고 보고합니다. 자세한 내용은 명령 쿼리 형태 업데이트, 명령 쿼리 형태 삽입및 명령 쿼리 형태 삭제 참조하세요.

MongoDB 9.0부터 $queryStats는 읽기 및 쓰기 (write) 작업 모두에 대해 기본값 으로 통계를 수집합니다. MongoDB 모든 작업이 아닌 작업 샘플 에 대한 통계를 수집합니다. MongoDB internalQueryStatsSampleRate 매개변수가 설정하다 속도로 읽기 작업을 샘플링하고 internalQueryStatsWriteCmdSampleRate 매개변수가 설정하다 속도로 쓰기 (write) 작업을 샘플링합니다. 두 매개변수 모두 기본값 0.01이며, 이는 연산의 1%를 샘플링합니다.

$queryStats는 MongoDB 샘플링하는 작업만 보고하기 때문에 출력은 배포서버 에 대해 실행 작업의 하위 집합을 나타냅니다.

MongoDB 9.0부터는 querySettings 문서 다음 명령에 직접 전달할 수 있습니다.

이러한 설정은 해당 명령 실행에만 적용 . MongoDB 클러스터 에 설정을 저장 하지 않으며 동일한 쿼리 형태 가진 다른 쿼리에 적용 하지 않습니다.

이전 버전에서는 클러스터 에 설정을 저장하고 일치하는 쿼리 형태 의 모든 쿼리 에 적용하는 setQuerySettings 명령으로만 쿼리 설정을 설정하다 수 있었습니다.

쿼리 형태 클러스터 쿼리 설정이 저장된 경우 MongoDB 해당 설정을 명령에서 전달한 설정과 결합합니다. 둘 다 동일한 필드 지정하는 경우 저장된 클러스터 설정이 우선합니다.

버전 9.0에 추가 되었습니다.

MongoDB 9.0부터는 queryKnobs 쿼리 설정으로 단일 쿼리 형태 에 대한 내부 서버 매개변수를 재정의할 수 있습니다. queryKnobs 설정에는 기능 호환성 버전 (FCV) 9.0 이상이 필요합니다.

자세한 내용은 쿼리 노브를 참조하세요.

버전 9.0에 추가 되었습니다.

MongoDB 9.0부터는 setQuerySettings 명령을 사용하여 단일 쿼리 형태 에 대해 maxTimeMS 시간 제한을 설정하다 수 있습니다. maxTimeMS 쿼리 설정에는 기능 호환성 버전 (FCV) 9.0 이상이 필요합니다.

자세한 내용은 명령 필드를 참조하세요.

MongoDB 9.0부터 null이 아닌 값으로 해석되지 않는 점선 경로는 null로 평가됩니다. 새로운 동작은 경로의 필드 에 빈 배열, 스칼라 값 배열 또는 중첩된 배열 포함된 배열 있을 때 적용됩니다.$eq, $ne, $in, $nin, $gte 및 $lte 연산자를 사용하는 null와의 비교는 새로운 시맨틱을 반영합니다.$lookup 단계의 동등성 매칭도 새로운 시맨틱을 반영합니다. 점선 경로를 null 와 비교하는 쿼리는 업그레이드 후 다른 결과를 반환할 수 있습니다. 자세한 내용은 MongoDB 9의 호환성 변경 사항0을 참조하세요.

MongoDB 9.0은 Queryable Encryption 활성화된 컬렉션의 암호화됨 문자열 필드에 접두사, 접미사 및 하위 문자열 쿼리의 GA를 표시합니다. 자세한 내용은 하위 문자열 쿼리 활성화 및 지원되는 애그리게이션 표현식을 참조하세요.

mongosh와 함께 접두사, 접미사 또는 하위 문자열 쿼리를 사용하려면 자동 암호화 공유 라이브러리 9.0 이상을 별도로 다운로드 다음 --cryptSharedLibPath 옵션을 사용하여 mongosh의 라이브러리 경로를 지정해야 합니다.

MongoDB 9.0이 useInternalAuthzForX509 매개변수를 추가합니다. true로 설정하다 하면, MONGODB-X509를 사용하여 인증하는 클라이언트는 LDAP 권한 부여 구성된 경우에도 내부 권한 부여 사용합니다. 자세한 내용은 useInternalAuthzForX509를 참조하세요.

MongoDB 9.0이 usersInfo 명령에 authenticatedMechanism 필드 추가합니다. 이 선택적 문자열 필드 사용자 권한 부여 정보를 조회할 때 usersInfo가 쿼리 권한 부여 백엔드 결정하는 인증 메커니즘 지정합니다. 자세한 내용은 usersInfo를 참조하세요.

MongoDB 9.0부터 mongocryptd는 더 이상 사용되지 않습니다. 대신 자동 암호화 공유 라이브러리를 사용하세요. 자동 암호화 공유 라이브러리는 mongocryptd를 대체하며 별도의 프로세스 시작할 필요가 없습니다. 자세한 내용은 CSFLE 쿼리 분석 구성 요소 설치 및 구성 및 쿼리 분석 구성 요소 설치 및 구성을 참조하세요.

MongoDB 9.0은 mongo 스키마 의 감사 메시지에 directRemote 필드 추가하고,OCSF 스키마 의 감사 메시지에 direct_endpoint 필드 추가합니다. 이러한 필드는 PROXY 프로토콜 헤더가 어설션하는 클라이언트 주소 와 관계없이 세션에 대한 리터럴 TCP 피어를 기록 . 자세한 내용은 Mongo 스키마 감사 메시지 및 OCSF 스키마 감사 메시지를 참조하세요.

MongoDB 9.0부터는 논리적 초기 동기화 중에 replSetGetStatus 명령을 사용할 때 다음 지표 사용할 수 있습니다.

initialSyncAttempts의 각 문서 해당 시도에 대한 phase, nodeUptimeSecs 및 phaseDurations도 보고합니다. 자세한 내용은 replSetGetStatus.initialSyncStatus.initialSyncAttempts을 참조하세요.

MongoDB 9.0부터,2dsphere 인덱스에서 키 추출 실패가 구조화된 진단을 생성하여 인덱싱할 수 없는 문서를 더 쉽게 식별할 수 있도록 합니다.

  • 이제 지역 키 추출 실패 시 명명된 오류 코드 510 (GeoKeyExtractionFailed) 및 511 (GeoKeyExtractionFailedTimeseries)가 발생하여 이전의 명명되지 않은 어설션 코드를 대체합니다.

  • 실패한 지리적 삽입 및 인덱스 빌드에는 이제 failingPath, underlyingCode, underlyingReason 및 failingElement 필드가 포함된 writeErrors[].errInfo 문서 포함됩니다. 기존 필드 이름은 변경되지 않지만 오류 이유 문자열은 이제 256 문자로 제한됩니다.

  • 지역 키 추출 실패에 대한 validate.errors 출력은 이제 제한된 자체 포함 메시지를 내보내고 mongod 로그 에 문서별 전체 세부 정보를 씁니다. 동일한 인덱스 및 경로에서 발생한 동일한 오류는 단일 메시지로 중복 제거되므로 오류를 특정 문서에 다시 매핑하려면 validate 출력 대신 로그 참조하세요. 전체 문서별 세부 정보는 로그 편집이 비활성화된 경우에만 기록됩니다. 자세한 내용은 validate을 참조하세요.

MongoDB 9.0부터serverStatus는 각 mongod 및 mongos 프로세스 에서 다음과 같은 변경 스트림 커서 지표 보고합니다.

currentOp 명령과 $currentOp 단계는 oplog 에서 변경 스트림 커서의 현재 위치인 currentOp.cursor.changeStreams.optime도 보고합니다. 변경 스트림에 대해 자세히 학습 MongoDB Change Streams 참조하세요.

이 섹션에서는 MongoDB 9.0 의 알려진 문제와 해결 상태에 대해 설명합니다.

버전
이슈
상태

9.0.0, 9.0.1, 9.02

서버-133518: 이전 강등 중에 중단된 청크 작업이 지속적인 마이그레이션 수신자의 복구를 차단하는 경우, 승격 중에 샤드 중단될 수 있습니다. 중단이 발생하면 샤드 프라이머리 될 수 없으며, 샤드 에서 프라이머리 읽기 설정 (read preference) 사용하는 쓰기 및 읽기를 사용할 수 없게 됩니다. 보조 노드는 계속해서 읽기를 제공할 수 있습니다. 다른 세컨더리 가능한 프라이 프라이머리 될 수 있도록 정지된 노드 를 복구, 재시작 또는 강제 종료합니다.

MongoDB 9.0.3에서 수정되었습니다.