문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

MongoDB 5.0 릴리스 노트

이 페이지의 내용

  • 패치 릴리스
  • Time Series 컬렉션
  • 집계
  • Auditing
  • 고정 사이즈 컬렉션
  • 변경 스트림
  • 인덱스
  • 제거된 명령
  • 복제본 세트
  • 보안
  • 샤드 클러스터
  • 셸 변경
  • 스냅샷
  • 트랜잭션
  • 이름 변경
  • 일반 변경 사항
  • 성능 고려 사항
  • 플랫폼 지원
  • 호환성에 영향을 미치는 변경 사항
  • 업그레이드 절차
  • 다운그레이드 고려 사항
  • 다운로드
  • 알려진 문제
  • 이슈 신고하기

참고

MongoDB 5.0 출시일: 2021년 7월 13일

경고

과거 릴리스 제한 사항

아래의 중요 공지는 일부 이전 MongoDB 버전에 영향을 미칩니다. 배포가 중요 주의보의 영향을 받는 기능에 따라 달라지는 경우 사용 가능한 최신 패치 릴리스로 업그레이드하십시오.

이슈
영향을 받는 버전
WT-7984
5.0.0 - 5.0.2
5.0.0 - 5.0.2
5.0.0 - 5.0.14(ARM64 또는 POWER 시스템 아키텍처)
5.0.2 - 5.0.17(Ops Manager 또는 Cloud Manager 클러스터의 증분 백업)
5.0.0 - 5.0.1
5.0.0 - 5.0.21
5.0.0 - 5.0.10
5.0.6 - 5.0.21(메타필드 내장 개체에 의해 샤딩된 시계열 컬렉션)

중요

MongoDB Server가 신뢰할 수 없는 연결에 성공할 수 있는 문제를 수정했습니다.

MongoDB 5 에서 CVE-2024-1351 로 인해.0 이전의 {3 5.0.25 --tlsCAFileCAFile 의 특정 구성에서 MongoDB Server는 피어 인증서 유효성 검사를 건너뛰어 신뢰할 수 없는 연결이 성공할 수 있습니다.

이렇게 하면 인증서 유효성 검사 실패로 인해 닫혔어야 하는 연결 및 TLS에서 제공하는 보안 보장을 효과적으로 줄일 수 있습니다. 이 문제는 다음 MongoDB Server 버전에 영향을 미칩니다.

  • 7.0.0 - 7.0.5

  • 6.0.0 - 6.0.13

  • 5.0.0 - 5.0.24

  • 4.4.0 - 4.4.28

CVSS 점수: 8.8

CWE: CWE-295: 부적절한 인증서 유효성 검사

  • 서버-50792 shardCollection/refineCollectionShardKey에 대한 샤드 키 인덱스를 찾을 수 없는 경우 더 유용한 오류를 반환합니다.

  • 서버-77506 샤딩된 다중 문서 트랜잭션은 데이터와 ShardVersion이 일치하지 않을 수 있습니다.

  • 서버-81878 startupRecoveryForRestore가 시작 복구 중에 컬렉션 삭제를 적용하면 제대로 재생되지 않을 수 있습니다.

  • 서버-83091 $or 쿼리는 계획 열거 중에 무한 루프를 트리거할 수 있습니다.

  • WT-7929 체크포인트 중 FTDC 중단을 방지하는 솔루션 조사

  • 5.0.24의 모든 JIRA 이슈 종료.

  • 5.0.24 ChangeLog

  • 서버-78108 POS 인터페이스는 종료 상태를 노출해야 합니다.

  • 서버-78115 샤드 프라이머리는 config 서버의 새 라우팅 정보를 사용하기 전에 과반수 쓰기를 커밋해야 합니다.

  • 서버-83150 Document::shred()는 문서 메타데이터를 복사하지 않습니다.

  • WT-11564 체크포인트에 있는 경우에만 최신 트랜잭션 값을 읽도록 RTS 수정

  • WT-11602 애플리케이션에서 예상 제거 실패를 숨기고 오류 발생 시 롤백하지 않습니다.

  • 5.0.23의 모든 JIRA 이슈 종료.

  • 5.0.23 변경 로그

  • 서버- addShard가 실행되기 전에 드라이버가 서명된 $clusterTimes를 복제본 세트 --shardsvrs에 가십하는것을 지원합니다.60466

  • 서버-71627 캐시된 컬렉션 경로 정보를 새로 고침하면 클러스터에 1 청크가 백만 개 있는 경우 모든 클라이언트 요청이 심각하게 차단됩니다.

  • 서버-78813 lastCommitted optime이 null인 배출 커서로 커밋 지점 전파가 무기한 실패합니다.

  • WT-10759 조정 중에 기록 저장소 페이지를 강제로 제거하려고 다시 시도하지 않음

  • WT-11051 집계 타임스탬프 유효성 검사에서 최신 시작 지속형 타임스탬프 비교 수정

  • 5.0.21의 모든 JIRA 이슈 종료.

  • 5.0.21 ChangeLog

  • 서버-74954 $를 포함하거나 $elemMatch 추가 조건을 다시 작성할 때 잘못된 결과

  • 서버-78813 lastCommitted optime이 null인 배출 커서로 커밋 지점 전파가 무기한 실패합니다.

  • 79136 서버- time-series에 대한 metaField의 $match + $group 쿼리 결과가 잘못되었습니다.

  • WT-10449 기록 저장소에 기록할 업데이트가 없는 경우 업데이트 체인을 저장하지 마세요.

  • WT-11031 체크포인트에서 시간 창 정보가 없는 테이블을 건너뛰도록 RTS 수정

  • 5.0.20의 모든 JIRA 이슈 종료.

  • 5.0.20 변경 로그

  • 서버-71985 DuplicateKey 오류 시 시계열 삽입 자동 재시도

  • 서버-74551 mongo 로 업그레이드한 후 findAndModify 중에 WriteConflictException이 불필요하게 5 경고로 기록됩니다.0

  • 서버-77018 dbStats와 2 인덱스 빌드 간의 교착 상태

  • 서버-78126 특정 종류의 입력의 경우, mongo::Value()는 빅 엔디안 플랫폼에서 항상 동일한 결과로 해시됩니다.

  • WT-10253 세션 dhandle 스윕 및 세션 커서 스윕을 더 자주 실행합니다.

  • 5.0.19의 모든 JIRA 이슈 종료.

  • 5.0.19 ChangeLog

수정된 문제:

  • 서버-48196 내장된 시간대 파일을 최신으로 업데이트하려면 timelib를 최신 버전으로 업그레이드합니다.

  • 서버-54150 안정적인 체크포인트에서의 복구는 oplog 애플리케이션 장애 시 fassert해야 합니다.

  • 서버-57056 정보 메시지에 대해 Syslog 심각도가 잘못 설정되었습니다.

  • 서버-72686 timeseries 컬렉션에서 $collStats 애그리게이션 단계에 대한 지원 추가

  • WT-10551 증분 백업은 수정된 블록을 생략할 수 있습니다.

  • 5.0.18의 모든 JIRA 이슈 종료.

  • 5.0.18 ChangeLog

수정된 문제:

수정된 문제:

  • 서버-61909 인덱스 항목이 많은 문서 삽입 또는 삭제 중단

  • 서버-73822 Time Series $group 재작성은 특정 축적자를 무시합니다.

  • 서버-74345 mongodb-org-server 4.4.19, 5.0.15, 6.0.5 이전 버전에서 업그레이드한 후 가 시작되지 않음(Debian, RPM 패키지)

  • 서버-74501 추가 정리 스레드를 생성하지 않도록 MigrationBatchFetcher/Inserter 완료 의존 수정

  • 서버-75205 모든 읽기 티켓이 소진되었을 때 양보한 후 강등과 잠금 복원 사이의 교착 상태

  • 5.0.16의 모든 JIRA 이슈 종료.

  • 5.0.16 ChangeLog

수정된 문제:

수정된 문제:

수정된 문제:

  • 서버-69611 기본적으로 -ffp-contract=off 컴파일러 옵션을 설정합니다.

  • 서버-69220 RefineCollectionShardKey를 사용하면 현재 샤드 키 필드를 범위 기반과 해시 간에 토글할 수 있으므로 데이터 불일치가 발생할 수 있습니다.

  • 서버-67650 리샤딩 수신자는0 oplog 적용자가 oplog 페처를 따라잡지 못한 경우 retentionOperationTimeEstimatedSecs= 를 반환할 수 있습니다.

  • 서버-68094 사용자 지정 생성 _id를 사용한 리샤딩이 프로젝션 오류로 인해 실패합니다.

  • WT-9870 복구 중에 가장 오래된 타임스탬프가 업데이트될 때마다 고정된 타임스탬프가 업데이트되는 문제를 수정합니다.

  • 5.0.13의 모든 JIRA 이슈 종료.

  • 5.0.13 ChangeLog

수정된 문제:

수정된 문제:

  • 서버- 항목의68511 MovePrimary config.databases 업데이트는 점으로 구분된 필드 표기법을 사용해야 합니다.

  • 서버-61321 텍스트 인덱스 버전에 대한 큰/NaN 값 처리 개선

  • 서버-60607 지역 인덱스 버전에 대한 큰/NaN 값 처리 개선

  • 서버-68628 프라이머리 페일오버 후 실패한 리샤딩 작업을 다시 시도하면 서버 충돌 또는 쓰기 손실이 발생할 수 있습니다.

  • 68522 50 4서버-4 방지 . 바이너리를 fCV 에서 시작합니다. TTL 인덱스가 잘못 구성된

  • WT-9500 HS 업데이트의 키/값 타임스탬프 대신 셀 시간 창을 사용하도록 RTS 수정

  • 5.0.11의 모든 JIRA 이슈 종료.

  • 5.0.11 ChangeLog

수정된 문제:

  • 서버-66418 문자열 순서 가정으로 인해 종속성 분석 중에 잘못된 프로젝션이 생성되었습니다.

  • 서버-65821 커밋/중단 결정을 유지하지 않은 준비된 트랜잭션이 있는 경우 setFCV 중 교착 상태

  • 서버-65131 기회주의적 읽기 타겟팅 비활성화(헤지된 읽기(hedged read) 제외)

  • 서버- PC 트랜잭션63971 후 서버 매개변수를 기본값 읽기-쓰기 동작으로 변경 2

  • 서버-66433 겹치는 범위 삭제가 pre-v 까지 완료될 때까지 기다리는 백포트 기한입니다. 버전51

  • 5.0.10의 모든 JIRA 이슈 종료.

  • 5.0.10 ChangeLog

수정된 문제:

수정된 문제:

  • 서버-63531 commitQuorum에 buildIndexes:false 노드가 잘못 포함되고 투표 노드만 자격이 있다는 오류 메시지가 잘못 표시됨

  • 서버-63387 1 StreamingCursor는 WiredTiger 백업 커서에서 검색된 순서대로 백업 블록을 반환해야 합니다.

  • 서버-62229 recoverFromOplogAsStandalone=true일 때 인덱스 빌드 항목을 적용할 때 발생하는 불변성 수정

  • 서버-61879 마이그레이션을 복구하기 위한 새로 고침은 진행 중인 새로 고침에 참여하지 않아야 합니다.

  • WT-8924 행 저장소에서 충돌을 확인할 때 삽입 목록이 있는 경우 디스크 시간 창을 확인하지 않습니다.

  • 5.0.8의 모든 JIRA 이슈 종료.

  • 5.0.8 ChangeLog

수정된 문제:

수정된 문제:

  • WT-8395 443 444 에서 업그레이드한 후 데이터가 일치하지 않습니다. . 및 . . ~ 4.4.8+ 및 5.0.2+

  • 서버-62245 MigrationRecovery는 하나의 마이그레이션만 복구해야 한다고 가정해서는 안 됩니다.

  • 서버-61427 고유한 인덱스 빌드는 많은 잘못된 중복 검사로 인해 커밋 중에 가용성이 손실될 수 있습니다.

  • 서버-61194 거친 세분성으로 Time Series 버킷 OID 재사용 방지

  • 서버-60310 OCSP 응답 유효성 검사는 관련 없는 인증서의 상태를 고려하지 않아야 합니다.

  • 5.0.6의 모든 JIRA 이슈 종료.

  • 5.0.6 변경 로그

수정된 문제:

  • 서버-61483 리샤딩 조정자가 스텝업에 대한 중단 결정을 복구하지 못하고 작업을 성공으로 커밋하려고 시도하여 데이터 불일치가 발생합니다.

  • 서버-59858 리액터 스레드에서 예약된 작업에 대한 가관측성 추가

  • 서버-51329 mongos 서버를 종료할 때 예기치 않은 재시도 불가 오류 발생

  • WT-8163 체크포인트 정리를 포기하기 위해 더 많은 제거 시나리오 고려

  • WT-7912 키 범위가 여러 페이지에 걸쳐 분할되는 시나리오를 처리하기 위해 최적화에 가까운 접두사 검색을 수정합니다.

  • 5.0.5의 모든 JIRA 이슈 종료.

  • 5.0.5 변경 로그

수정된 문제:

수정된 문제:

  • 서버-57667: 리샤딩의 컬렉션 복제 파이프라인 처리 속도 개선

  • 서버-57630: Ubuntu 18 04 에서 SSL_OP_NO_RENEGOTIATION을 1 활성화합니다. OpenSSL 에 대해 실행할 때 .1.1

  • WT-8005: 기록 저장 항목이 해결되지 않은 상태로 남아 있을 수 있는 준비 커밋 버그 수정

  • WT-7995: 체크포인트 가시성을 초과할 수 없는 전역 가시성 수정

  • WT-7984: 체크포인트에서 데이터 페이지를 생략할 수 있는 버그 수정

  • 5.0.3의 모든 JIRA 이슈 종료.

  • 5.0.3 ChangeLog

수정된 문제:

  • 서버-58936: 고유 인덱스 제약 조건이 적용되지 않을 수 있습니다.

  • 서버-57756: 동시 강등과 트랜잭션 oplog 항목 적용 간의 경쟁

  • 서버-54729: MongoDB Enterprise Debian/Ubuntu2패키지는 libsasl -modules 및 libsasl2-modules-gssapi-mit에 의존해야 합니다.

  • 서버-47372: config.cache 컬렉션은 컬렉션이 삭제된 후에도 유지될 수 있습니다.

  • WT-6729: 스테이블의 활성 트랜잭션 검사로 롤백을 실행하기 전에 제거 중지

  • 5.0.2의 모든 JIRA 이슈 종료.

  • 5.0.2 ChangeLog

수정된 문제:

이 페이지의 나머지 부분에서는 5.0.0 릴리스 정보를 제공합니다.

MongoDB 5.0은 일정 기간 동안의 측정 시퀀스를 효율적으로 저장하는 시계열 컬렉션을 도입했습니다. 일반 컬렉션과 비교하여 시계열 데이터를 시계열 컬렉션에 저장하면 쿼리 효율성이 향상되고 데이터 및 인덱스의 디스크 사용량이 줄어듭니다.

MongoDB 5.0에는 다음과 같은 집계 연산자가 도입되었습니다.

연산자
설명

$count (aggregation accumulator)는 기존 파이프라인 단계와 $group (aggregation) $setWindowFields 새로운 MongoDB 5.0 단계에서 사용할 때 모든 문서의 개수를 제공합니다.

참고

명확화

2}는 파이프라인 단계와 $count (aggregation accumulator) $count (aggregation) 구별됩니다.

Date() 객체를 지정된 시간 단위만큼 증가시킵니다.
두 날짜의 차이를 반환합니다.
Date() 객체를 지정된 시간 단위만큼 감소시킵니다.
날짜를 자릅니다.
문서에서 지정된 필드의 값을 반환합니다. 2}를 사용하여 마침표( )가 포함되거나 달러 기호( )로 시작하는 이름의 필드 값을 검색할 $getField 수 있습니다..$
$rand 메서드는 호출될 때마다 0 ~ 1 사이의 임의의 실수 값을 생성합니다. 새로운 $sampleRate 연산자는 $rand 기반으로 합니다.
2} 메서드를 추가하여 $sampleRate 파이프라인에서 주어진 비율로 문서를 확률적으로 선택합니다.
문서에서 지정된 필드를 추가, 업데이트 또는 제거합니다. 2}를 사용하여 마침표( )가 포함되거나 달러 기호( )로 시작하는 이름을 가진 필드를 추가, 업데이트 또는 제거할 $setField 수 있습니다..$
문서에서 지정된 필드를 제거합니다. 마침표(.)가 포함되거나 달러 기호($)로 시작하는 이름을 가진 필드를 제거하기 위한 $setField 별칭입니다.

MongoDB 5.0에는 $setWindowFields 파이프라인 단계가 도입되어 컬렉션의 지정된 문서 범위(창이라고 함)에서 작업을 수행할 수 있습니다. 이 작업은 선택한 창 연산자에 따라 결과를 반환합니다.

예를 들어 $setWindowFields 단계를 사용하여 다음을 출력할 수 있습니다.

  • 컬렉션에 있는 두 문서 간의 판매량 차이입니다.

  • 판매 순위.

  • 누적 판매 총액입니다.

  • 데이터를 외부 데이터베이스로 내보내지 않고도 복잡한 시계열 정보를 분석합니다.

MongoDB 5.0부터 $eq, $lt, $lte, $gt, $gte 연산자($expr 연산자 내 배치)는 성능 향상을 위해 인덱스를 사용할 수 있습니다.

MongoDB 5.0부터 대체 표현식을 반환하기 전에 $ifNull 표현식에 대해 여러 입력 표현식을 지정할 수 있습니다.

MongoDB 5.0부터 aggregate 명령과 db.collection.aggregate() 헬퍼 메서드에 집계 파이프라인의 다른 곳에서 사용할 수 있는 변수 목록을 지정하는 let 옵션이 추가되었습니다. 이를 통해 쿼리 텍스트에서 변수를 분리하여 명령 가독성을 향상시킬 수 있습니다.

MongoDB 5.0부터 집계 파이프라인 $lookup 단계는 컬렉션 간의 조인을 개선하는 간결한 상관관계 하위 쿼리를 지원합니다.

MongoDB 5.0부터는 단계, 연산자 $lookup $sampleRate 또는 $sample 연산자를 포함하는 파이프라인 단계에서 $rand 상관 관계가 없는 하위 쿼리의 경우 반복되는 경우 항상 하위 쿼리가 다시 실행됩니다. 이전에는 하위 쿼리 출력 크기에 따라 하위 쿼리 출력이 캐시되거나 하위 쿼리가 다시 실행되었습니다.

$lookup 사용하여 상관관계가 없는 하위 쿼리 수행을 참조하십시오.

MongoDB 5.0부터 쿼리 최적화 도구는 $project 단계의 결과를 $sort 단계로 푸시 다운합니다. 따라서 $sort 작업은 project 단계와 함께 사용할 때 더 적은 RAM을 필요로 하고 Sort exceeded memory limit 오류를 방지할 수 있습니다.

MongoDB 5.0에는 런타임에 감사 필터를 구성하는 기능이 추가되었습니다.

연산자
설명
감사 구성을 확인하기 위한 폴링 간격을 정의합니다
2} 및 에서 mongod 감사 구성을 mongos 검색합니다.
런타임에 mongodmongos 인스턴스에 대한 새 감사 구성을 설정합니다.

MongoDB 5.0부터 도입됨:

MongoDB 5.0부터는 복제 세트 제한 컬렉션에 대한 암시적 삭제 작업이 멤버에서 처리되고 보조 멤버에 복제됩니다.

MongoDB 5.0.7부터 도입되며, 삭제 방법을 사용하여 제한된 컬렉션에서 문서를 삭제할 수 있습니다.

MongoDB 5.0부터 변경 이벤트에는 배열 잘림을 기록하는 updateDescription.truncatedArrays 필드가 포함됩니다.

MongoDB 5.0부터는 partialFilterExpression 필드가 동등한 필터를 표현하지 않는 한 동일한 키 패턴을 사용하여 여러 부분 인덱스 를 만들 수 있습니다.

이전 버전의 MongoDB에서는 서로 다른 partialFilterExpressions에 동일한 키 패턴을 사용할 때 여러 개의 부분 인덱스를 만들 수 없습니다.

MongoDB 5.0부터는 동일한 키 패턴을 가진 고유한 스파스 인덱스와 고유한 비스파스 인덱스가 단일 컬렉션에 존재할 수 있습니다.

고유한 희소 인덱스 생성보기

2} 명령은 진행 중인 인덱스 db.collection.dropIndexes() 빌드가 있는 경우 준비된 인덱스를 삭제할 수 없습니다.

  • MongoDB 4.4.0~4.4.4 버전에서는 버그로 인해 이 논리가 적용되지 않았습니다.

MongoDB 배포에서 실행되는 경우 db.collection.validate() 독립 실행형 배포의 멀티키 메타데이터 불일치를 수정하려고 시도합니다.

MongoDB 5.0에서는 사용 중단된 geoHaystack 인덱스와 geoSearch 명령이 제거되었습니다. 대신 2d 인덱스$geoNear와 함께 사용하거나, 지원되는 지리 공간적 쿼리 연산자 중 하나를 사용할 수 있습니다.

MongoDB 인스턴스를 5.0으로 업그레이드하고 featureCompatibilityVersion5.0으로 설정하면 기존에 있던 geoHaystack 인덱스가 모두 삭제됩니다.

db.collection.createIndex() db.collection.createIndexes() 2} 및 작업에는 옵션을 잘못 지정할 때 새로운 오류 메시지가 표시됩니다.

인덱스 빌드 중에 복제본 세트의 노드가 완전히 종료되거나 롤백되는 경우, 이제 인덱스 빌드 진행률이 디스크에 저장됩니다. 서버가 다시 시작되면 저장된 위치에서 인덱스 생성이 다시 시작됩니다.

MongoDB 5.0부터 reIndex 명령과 db.collection.reIndex() 셸 메서드는 독립 실행형 인스턴스에서만 실행할 수 있습니다.

MongoDB 5.0부터는 다음 데이터베이스 명령과 mongo 셸 헬퍼 메서드가 제거되었습니다.

MongoDB 5.0부터는 config.transactions 컬렉션에서 다음과 같은 읽기 우려 사항 및 옵션이 있는 경우 트랜잭션이 아닌 읽기가 허용되지 않습니다.

MongoDB 5 부터 시작.0, hello 명령 및 db.hello() 메서드가 isMaster 명령 및 db.isMaster() 메서드를 대체하기 위해 도입되었습니다. 새로운 토폴로지 메트릭 connections.exhaustHelloconnections 에서 이를 추적합니다.

MongoDB 5.0부터 mongodmongos 종료하기 전에 진행 중인 모든 데이터베이스 작업이 완료될 수 있도록 대기 기간을 입력합니다.

MongoDB 5.0부터 members[n]._id 필드는 0보다 크거나 같은 정수 값일 수 있습니다. 이전에는 이 값이 0부터 255까지의 정수로 제한되었습니다.

MongoDB 5.0부터는 스토리지 엔진 개선으로 인해 enableMajorityReadConcern--enableMajorityReadConcern 변경할 수 없으며 항상 true으로 설정됩니다.

이전 버전의 MongoDB에서는 enableMajorityReadConcern--enableMajorityReadConcern 구성할 수 있으며 false으로 설정하여 스토리지 캐시 압력으로 인해 3멤버 PSA(Primary-Secondary-Arbiter) 아키텍처를 사용하는 배포가 고정되지 않도록 방지할 수 있습니다.

프라이머리-세컨더리-중재자(PSA) 아키텍처를 사용 중이라면 다음을 고려하세요.

  • 쓰기 고려 "majority"는 세컨더리를 사용할 수 없거나 지연되었을 때 성능 문제를 일으킬 수 있습니다. 이러한 문제를 완화하는 방법은 PSA 복제본 세트의 성능 문제 완화를 참조하세요.

  • 글로벌 기본값 "majority"를 사용하고 있고, 쓰기 고려가 과반수 크기보다 작으면 쿼리가 오래된 (완전히 복제되지 않은) 부실 데이터를 반환할 수 있습니다.

MongoDB 5.0부터는 새로운 replWriterMinThreadCount 서버 매개 변수를 사용하여 이 최소값을 초과하는 유휴 스레드를 닫도록 허용할 수 있습니다. replWriterMinThreadCount5}가 replWriterThreadCount보다 작은 값으로 구성되면 replWriterMinThreadCount 초과하는 유휴 스레드는 시간 초과됩니다.

이제 1차-보조-알비터(PSA) 복제본 세트를 재구성하거나 PSA 아키텍처로 변경할 때 경우에 따라 2단계 변경으로 재구성을 수행해야 합니다. MongoDB 5.0은 두 단계를 모두 수행하는 rs.reconfigForPSASet() 메서드를 도입했습니다. 도우미 방법을 사용할 수 없는 경우 PSA 복제본 세트 안전하게 수정하기의 절차를 따르세요.

maxNumSyncSourceChangesPerHour 노드가 동기화 소스 재평가를 일시적으로 중지하기 전에 시간당 동기화 소스 변경이 발생할 수 있는 횟수를 결정합니다. 이 매개변수는 노드에 동기화 소스가 없는 경우 노드가 다른 노드에서 동기화를 시작하는 것을 방지하지 않습니다.

MongoDB 부터 5 시작.0.2, 새 enableOverrideClusterChainingSetting 서버 매개 변수를 로 설정하여 이 인 경우에도 true 세컨더리 멤버가 다른 세컨더리 멤버의 데이터를 복제할 수 있도록 할 settings.chainingAllowedfalse 있습니다.

MongoDB 5.0부터는 실행 중인 mongod 또는 mongos 인스턴스를 먼저 중지할 필요 없이 필요에 따라 다음 TLS 인증서를 교체할 수 있습니다.

이러한 인증서를 순환하려면 파일 시스템의 인증서 파일을 업데이트된 버전으로 바꾼 다음 rotateCertificates 명령 또는 db.rotateCertificates() 셸 메서드를 사용하여 인증서 순환을 트리거합니다.

이러한 방식으로 인증서를 회전하는 데 가동 중지 시간이 필요하지 않으며 활성 원격 연결이 끊어지지 않습니다.

자세한 내용은 온라인 인증서 순환을 참조하십시오.

MongoDB 5.0은 opensslCipherSuiteConfig 매개변수를 도입하여 TLS 1.3 암호화를 사용할 때 OpenSSL이 허용해야 하는 지원되는 암호 집합을 구성할 수 있도록 합니다.

MongoDB 5.0부터 mongodmongos 이제 인증서에 주체 대체 이름 특성이 포함되지 않은 경우 시작 경고를 발행합니다.

다음 플랫폼은 일반 이름 유효성 검사를 지원하지 않습니다:

  • iOS 13 이상

  • MacOS 10.15 이상

  • Go 1.15 이상

이러한 플랫폼을 사용하는 클라이언트는 호스트 이름이 CommonName 속성으로 지정된 x.509 인증서를 사용하는 MongoDB 서버에 인증하지 않습니다.

MongoDB 5.0은 applyOps dbAdminAnyDatabase 상속하는 권한 작업을 도입했습니다.

2} 작업은 applyOps 사용자가 데이터베이스 명령을 applyOps 실행할 수 있도록 허용합니다.

이상적인 샤드 키를 사용하면 MongoDB가 클러스터 전체에 문서를 고르게 분산하는 동시에 일반적인 쿼리 패턴을 용이하게 할 수 있습니다. 샤드 키가 최적화되지 않으면 고르지 않은 데이터 분산으로 인해 성능 또는 확장 문제를 일으킬 수 있습니다. MongoDB 5.0부터는 reshardCollection 명령을 사용하여 컬렉션의 샤드 키를 변경하여 클러스터 전체에 대한 데이터 배포를 변경할 수 있습니다.

MongoDB 5.0부터 $currentOp 집계 단계(및 currentOp 명령어와 db.currentOp() 셸 메서드)에는 리샤딩 코디네이터와 도너 및 리시버 샤드의 진행 중인 리샤딩 작업 상태에 대한 추가 정보가 포함되어 있습니다.

MongoDB 5 부터 시작.0, $currentOp 애그리게이션 단계는mongosh와 함께 헬퍼 메서드 db.currentOp() 를 실행할 때 사용됩니다

MongoDB 5 부터 시작.0, MongoDB는 ShardingTaskExecutorPoolReplicaSetMatching 에 대한 새로운 기본값으로 매개 변수 옵션 "automatic" 를 추가합니다. mongos 로 설정하면 인스턴스는 "matchPrimaryNode" 옵션에 지정된 동작을 따릅니다. mongod 로 설정하면 인스턴스는 "disabled" 옵션에 지정된 동작을 따릅니다.

MongoDB 5.0부터는 renameCollection 명령을 사용하여 샤딩된 컬렉션의 이름을 변경할 수 있습니다.

샤딩된 클러스터에서 샤딩된 컬렉션이나 샤딩되지 않은 컬렉션의 이름을 변경할 때 소스 및 대상 컬렉션은 모든 샤드에서만 독점적으로 잠깁니다. 소스 및 대상 컬렉션에 대한 후속 작업은 이름 바꾸기 작업이 완료될 때까지 기다려야 합니다.

MongoDB 5.0부터 movePrimary 명령을 사용하여 샤드 클러스터에서 샤드를 제거할 때, 원본 샤드에 쓰면 오류 메시지가 생성됩니다.

MongoDB 부터 5 시작.0,config.changelog 분할병합 작업을 위한 owningShard 컬렉션의 문서에 필드가 포함되어 있습니다.owningShard 필드에는 shardId 분할되거나 병합된 청크를 소유한 샤드의 가 표시됩니다.

owningShard 0} 필드는 분할 또는 병합 작업이 자주 발생하는 샤드를 식별하는 데 도움이 됩니다.

MongoDB 5 부터 시작.0 maxCatchUpPercentageBeforeBlockingWrites 를 설정하여 전송 중인 청크의 총 크기(MB)와 비교했을 때 moveChunk 작업 중에 아직 마이그레이션되지 않은 데이터의 최대 허용 비율을 지정할 수 있습니다.

이 매개변수는 다음의 동작에 영향을 줄 수 있습니다.

mongo 셸은 MongoDB v5 에서 더 이상 사용되지 않습니다.0. 대체 셸은 mongosh 입니다. 레거시 mongo 셸은 향후 릴리스에서 제거될 예정입니다.

셸 패키징도 MongoDB v5 에서 변경되었습니다.0. 자세한 내용은 설치 지침 을 참조하세요.

MongoDB 5 0부터 시작. , Google Cloud Platform KMS 및 Azure Key Vault는 mongosh 및 레거시 mongo 셸 모두에서 클라이언트측 필드 레벨 암호화 를 위한 키 관리 서비스(KMS) 제공자로 지원됩니다.

KMS를 사용하면 클라이언트 측 필드 수준 암호화 워크플로우의 일부로 데이터 암호화 키를 암호화 및 복호화하는 데 사용되는 고객 마스터 키(CMK)를 중앙에서 안전하게 저장할 수 있습니다.

또한 구성된 KMS를 사용하면 MongoDB Enterprise와 함께 사용할 때 CSFLE가 데이터 필드의 문서를 해독하는 방법을 활용할 수 있습니다.

자세한 내용은 mongosh를 사용하여 KMS 제공자 구성을 참조하세요.

MongoDB 5.0부터 기본 및 보조 노드의 다중 문서 트랜잭션 이외의 일부 읽기 작업에 대해 읽기 문제 "snapshot" 가 지원됩니다. 장기 실행 스냅샷 쿼리 수행을 참조하십시오.

MongoDB 5.0부터는 minSnapshotHistoryWindowInSeconds 매개변수를 사용하여 WiredTiger가 스냅샷 기록을 보관하는 기간을 제어할 수 있습니다.

서버 매개변수 coordinateCommitReturnImmediatelyAfterPersistingDecision 트랜잭션 커밋 결정이 클라이언트에 반환되는 시기를 제어합니다.

이 매개 변수는 MongDB 5.0에서 기본값이 true로 도입되었습니다. MongoDB 6.1에서는 기본값이 false로 변경됩니다.

coordinateCommitReturnImmediatelyAfterPersistingDecision 0}이 false 일 때,샤드 트랜잭션 코디네이터는 모든 구성원이 다중 문서 트랜잭션 커밋을 승인할 때까지 기다렸다가 클라이언트에게 커밋 결정을 반환합니다.

2022년 2월부터 " 버전이 지정된 API " 용어가 " 스테이블 API " 로 변경되었습니다. 이름은 변경되나 모든 개념과 기능은 동일하게 유지됩니다.

MongoDB 5.0은 파이프라인 단계를 $lookup 사용하는 쿼리에 대한 실행 계획 통계를 추가합니다.

MongoDB 5.0은 접두사가 ($)이거나 (.) 문자가 포함된 필드 이름에 대한 지원이 개선되었습니다. 이러한 문자를 사용하는 데이터 소스로 더 쉽게 작업할 수 있도록 데이터 저장에 대한 유효성 검사 규칙이 업데이트되었습니다.

MongoDB 5.0부터는 setDefaultRWConcern 명령을 통해 클러스터 전체 쓰기 우려(CWWC)가 설정되면 쓰기 우려를 해제할 수 없습니다.

MongoDB 5.0부터 암시적 기본 쓰기 우려는 w: majority입니다. 그러나 중재자가 포함된 배포의 경우 특별히 고려해야 할 사항이 있습니다.

  • 복제 세트의 투표 과반수는 1에 투표 회원 수의 절반을 반올림한 값입니다. 데이터를 포함하는 투표 구성원의 수가 투표 과반수보다 많지 않은 경우 기본 쓰기 문제는 { w: 1 } 입니다.

  • 다른 모든 시나리오에서 기본 쓰기 우려는 { w: "majority" }입니다.

특히 MongoDB는 다음 공식을 사용하여 기본 쓰기 문제를 결정합니다.

if [ (#arbiters > 0) AND (#non-arbiters <= majority(#voting-nodes)) ]
defaultWriteConcern = { w: 1 }
else
defaultWriteConcern = { w: "majority" }

예를 들어 다음 배포와 해당 기본 쓰기 문제를 고려해보세요.

비중재인
중재자
투표 노드
과반수 투표 노드
자세한 내용은 암시적 기본 쓰기 고려를 참조하세요.
2
1
3
2
{ w: 1 }
4
1
5
3
{ w: "majority" }
  • 첫 번째 예제에서는

    • 총 3개의 투표 노드에는 2명의 비중재자와 1명의 중재자가 있습니다.

    • 투표 노드의 대다수(1 + 3의 절반, 반내림)는 2입니다.

    • 비중재자 수(2)는 대다수의 투표 노드(2)와 동일하므로 { w: 1 } 의 암시적 쓰기 문제가 발생합니다.

  • 두 번째 예제에서는

    • 총 5개의 투표 노드에는 4명의 비중재자와 1명의 중재자가 있습니다.

    • 투표 노드의 대다수(1 + 5의 절반, 반내림)는 3입니다.

    • 비 중재자 (4) 의 수가 투표 노드 (3) 의 과반수보다 많아서 암묵적인 쓰기 문제가 { w: "majority" } 발생합니다.

{ w: "majority" } 2} 기본 쓰기 우려는 선거가 발생하거나 복제본 세트 구성원을 사용할 수 없게 되는 경우 더 강력한 지속성을 보장합니다.

MongoDB 5.0부터 새로운 매개변수 mongosShutdownTimeoutMillisForSignaledShutdown mongos종료를 시작하기 전에 진행 중인 데이터베이스 작업이 완료될 때까지 기다리는 시간(밀리초)을 지정합니다.

MongoDB 5.0에는 zstdCompressionLevel2} 구성 파일 옵션이 도입되어 blockCompressor zstd으로 설정된 경우 압축 수준을 구성할 수 있습니다.

MongoDB 5.0부터 다른 작업이 컬렉션에 대해 배타적(X) 쓰기 잠금을 보유하는 경우 다음 읽기 작업이 차단되지 않습니다.

컬렉션에 쓸 때 mapReduce aggregate 인텐트 배타적(IX) 잠금을 유지합니다. 따라서 컬렉션에 배타적 X 잠금이 이미 있는 경우 mapReduceaggregate 쓰기 작업이 차단됩니다.

MongoDB 5.0은 문서가 스키마 검증에 실패한 경우에 대한 자세한 설명을 추가합니다.

MongoDB 5.0부터 validate 명령과 db.collection.validate() 도우미 메서드에 불일치가 있는 컬렉션을 복구할 수 있는 새로운 복구 옵션이 추가되었습니다.

validate 2} 명령 및 도우미 db.collection.validate() 메서드는 repaired true 컬렉션이 복구된 경우 인 새로운 부울 값도 반환합니다.

MongoDB 5.0부터 validatedb.collection.validate() 컬렉션의 문서의 유효성을 검사합니다. 이 명령은 스키마 유효성 검사 규칙을 위반한 경우 이를 보고합니다.

MongoDB 5.0부터 시작하여 --repair 옵션은 mongod 대한 옵션을 사용하여 컬렉션의 유효성을 검사하여 불일치를 찾아내고 가능한 경우 수정하여 인덱스를 다시 빌드하지 않도록 합니다. 사용 및 제한 사항에 대해서는 --repair 옵션을 참조하십시오.

MongoDB 5.0부터 validate 명령과 db.collection.validate() 도우미 메서드는 손상된 문서에 대해 RecordId 개의 값 배열이 포함된 새로운 corruptRecords 필드를 반환합니다.

MongoDB 부터 5 0시작. 부터 명령에는 setParameter maxValidateMemoryUsageMB 명령의 최대 메모리 사용량을 설정하는 validate 새로운 매개 변수가 있습니다.

MongoDB 5.0부터는 findChunksOnConfigTimeoutMS 매개 변수를 사용하여 chunks에서 찾기 작업의 시간 제한을 변경할 수 있습니다.

MongoDB 5.0부터는 데이터베이스 프로파일러에 filter 옵션을 설정하여 어떤 작업이 프로파일링되고 기록되는지 결정할 수 있습니다. 4} 및 프로파일러 옵션 대신 표현식을 사용할 수 있습니다.filter slowms sampleRate

참조:

MongoDB 5 부터 시작.0 profile 명령이나 db.setProfilingLevel() 래퍼 메서드를 사용하여 데이터베이스 프로파일러 level, slowms, sampleRate 또는 filter 에 수행한 변경 사항은 log file 에 기록됩니다.

감사가 활성화된 MongoDB 5.0부터는 logRotate 명령을 사용하여 서버와 감사 로그를 독립적으로 회전할 수 있습니다. 이전에는 logRotate명령을 사용하여 두 로그를 함께 순환시켰습니다.

MongoDB 5.0부터 느린 작업 로그 메시지에는 클라이언트 IP 주소를 지정하는 remote 필드가 포함됩니다.

MongoDB 5.0부터는 remoteOpWaitMillis 로그 필드를 사용하여 샤드에서 결과 대기 시간을 얻을 수 있습니다.

MongoDB 5.0부터 뷰의 느린 쿼리에 대한 로그 메시지에는 resolvedViews 뷰 세부 정보가 포함된 필드가 포함됩니다.

MongoDB 5.0부터 다음 명령에는 변수 목록을 정의하는 let 옵션이 있습니다. 이를 통해 쿼리 텍스트에서 변수를 분리하여 명령 가독성을 향상시킬 수 있습니다.

update 명령에는 변수 목록을 정의하기 위한 c 필드도 있습니다.

MongoDB 5.0부터 userToDNMapping 구성 파일 옵션과 에 --ldapUserToDNMapping 대한 명령줄 옵션이 mongod 추가되었습니다. / mongosmongoldap 은 이제 빈 매핑 문서(예: 빈 문자열 또는 빈 배열)가 옵션에 지정된 경우 기본적으로 인증된 사용자 이름을 LDAP DN으로 매핑합니다. 이전에는 빈 매핑 문서를 제공하면 매핑이 실패했습니다.

MongoDB 5.0부터 dbStats 명령은 다음과 같은 추가 통계를 출력합니다.

serverStatus 출력에 다음과 같은 새로운 필드가 포함됩니다.

집계 지표
API 버전 메트릭
복제 메트릭
관심사 카운터 읽기
관심사 카운터 쓰기
  • opWriteConcernCounters 에 다음과 같은 새로운 필드가 추가되었습니다.

    • opWriteConcernCounters.insert.noneInfo

    • opWriteConcernCounters.update.noneInfo

    • opWriteConcernCounters.delete.noneInfo

스레드 연결 수
  • connections.threaded, 클라이언트 요청을 서비스하는 스레드에 할당된 클라이언트로부터 들어오는 연결 수를 보고합니다.

통계 재구성
서비스 실행자 지표
  • network.serviceExecutors를 사용하여 클라이언트 요청에 대한 작업을 실행하는 서비스 실행자에 대해 보고합니다.

커서 지표
보안 카운터
Repl
  • 이제 repl 복제본 집합 기본값에서만 실행되는 서비스에 대한 추가 정보가 포함된 primaryOnlyServices 문서가 포함되어 있습니다.

MongoDB 5 부터 시작.0, 모든 collection에 대한 plan caches 의 누적 크기가 0 보다 작은 경우에만 계획 캐시 가 전체 plan cache 항목을 저장합니다.5 GB. 모든 collection에 대한 plan caches 의 누적 크기가 이 임계값을 초과하면 특정 디버그 정보 없이 추가 plan cache 항목이 저장됩니다.

plan cache 항목의 예상 크기 (바이트) 는 $planCacheStats 출력에서 사용할 수 있습니다.

MongoDB 5 부터 시작.0, 클라이언트 세션 내에서 생성된 커서는 해당 서버 세션killSessions 명령으로 종료되거나 세션 시간이 초과되거나 클라이언트가 커서를 소진한 경우 닫힙니다. mongosh 에서 커서 반복하기를 참조하세요.

MongoDB 5.0은 validateDBMetadata 명령을 추가합니다. 5} 명령은 데이터베이스 또는 컬렉션의 저장된 메타데이터가 특정 API 버전 내에서 유효한지 validateDBMetadata 확인합니다.

MongoDB 5.0은 기본 쓰기 고려{ w: "majority" }로 변경합니다. 새로운 기본 쓰기 고려는 성능에 영향을 줄 수 있습니다. MongoDB는 계산된 대다수의 복제본 세트 노드가 디스크에 쓰기를 실행하고 지속한 후에만 쓰기를 승인하기 때문입니다.

애플리케이션이 성능에 민감한 쓰기에 의존하는 경우, 데이터 내구성 보장을 대가로 기본 쓰기 고려를 재정의할 수 있습니다. 이 설정을 재정의하려면 다음을 수행할 수 있습니다.

경고

쓰기 작업에서 { w: 1 } 쓰기 고려 (write concern)를 사용하는 경우 쓰기 작업이 완료되기 전에 프라이머리가 다시 시작되면 롤백 디렉토리는 oplog hole 이후에 제출된 쓰기를 제외할 수 있습니다.

MongoDB 5.0부터 "local" 기본 및 보조에 대한 읽기 작업에 대한 기본 읽기 우려 수준입니다.

이로 인해 필터를 사용하는 카운트 쿼리 및 적용 대상 쿼리의지연 시간이 크게 증가할 수 있습니다.

클러스터 전체 읽기 우려를 setDefaultRWConcern 설정하여 이 동작을 선택 해제할 수 있습니다.

MongoDB 5.0에서는 기본값 minSnapshotHistoryWindowInSeconds300으로 증가하여 성능에 부정적인 영향을 미칠 수 있습니다. 읽기 고려 "snapshot"을 사용하지 않는 경우 모든 mongod 인스턴스에서 minSnapshotHistoryWindowInSeconds 매개 변수 값을 5 로 줄일 수 있습니다. 자세한 내용은 스냅샷 기록 보존을 참조하세요.

참고

샤딩된 클러스터를 실행하는 경우 config 서버에서 minSnapshotHistoryWindowInSeconds 를 변경하지 않습니다.

MongoDB 5.0은 다음과 같은 최소 마이크로아키텍처 요구 사항을 도입합니다.

중앙처리장치
최소 지원 마이크로아키텍처
인텔 x86_64

MongoDB 5.0에는 다음 중 하나가 필요합니다.

  • 인텔 샌디브릿지 이상 코어 프로세서 또는

  • 인텔 타이거 레이크 이상 셀러론 또는 펜티엄 프로세서.

AMD x86_64
MongoDB 5.0에는 AMD Bulldozer 이상이 필요합니다.
arm64
MongoDB 5.0에는 ARMv8.2-A 이상이 필요합니다.

MongoDB v5.0은 이러한 최소 마이크로아키텍처 요구 사항을 충족하지 않는 x86_64 또는 arm64 플랫폼에서 지원되지 않습니다.

자세한 내용은 x86_64 플랫폼 지원을 참조하십시오.

MongoDB 5.0에서는 다음 플랫폼에 대한 지원이 제거됩니다.

  • macOS 10.15

  • s390x 아키텍처의 SLES 12

  • PPC64LEs390x 아키텍처의 Ubuntu 18.04

MongoDB 5.0에서 지원되는 플랫폼 및 아키텍처의 전체 목록은 플랫폼 지원을 참조하세요.

일부 변경 사항은 호환성에 영향을 줄 수 있으며 사용자가 조치를 취해야 할 수 있습니다. 호환성 변경 사항에 대한 자세한 목록은 MongoDB 5.0의 호환성 변경사항을 참조하세요.

중요

기능 호환성 버전

4.4 배포에서 MongoDB 5.0으로 업그레이드하려면 4.4 배포에 featureCompatibilityVersion 로 설정된 4.4 이 있어야 합니다. 버전을 확인하려면 다음을 입력하세요.

db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

MongoDB 5.0으로 업그레이드하는 방법은 사용 중인 MongoDB 배포 관련 업그레이드 지침을 참조하세요.

5 으)로의 업그레이드에 대한 지침이 필요한 경우.0, MongoDB 전문 서비스 는 MongoDB 애플리케이션의 중단 없이 원활하게 전환할 수 있도록 주요 버전 업그레이드 지원을 제공합니다.

MongoDB는 단일 버전 다운그레이드만 지원합니다. 현재 릴리스보다 이전 버전인 릴리스로 다운그레이드할 수 없습니다.

예를 들어, 5.0 시리즈를 4.4 시리즈 배포로 다운그레이드할 수 있습니다. 하지만 4.4 시리즈 배포를 4.2 시리즈 배포로 한 단계 더 다운그레이드하는 것은 지원되지 않습니다.

MongoDB 5 을(를) 다운로드합니다.0, MongoDB 다운로드 센터 로 이동합니다.

다음도 참조하세요.

버전
이슈
상태
5.0.0
서버-58171: Time Series 컬렉션의 granularity 매개변수는 컬렉션이 생성된 후에는 수정할 수 없습니다.
5.0.1에서 해결되었습니다.
5.0.0
서버-58392: 진행 중인 리샤딩 작업으로 인해 백업 또는 복원 작업이 성공하지 못할 수 있습니다.
5.0.3에서 수정됨

문제를 보고하려면 MongoDB GitHub 리포지토리 를 참조하세요. MongoDB 서버 또는 관련 프로젝트 중 하나에 대한 JIRA 티켓을 제출하는 방법에 대한 지침을 참조하세요.

← 6.0 변경 로그