설정 기능 호환성 버전
정의
setFeatureCompatibilityVersion
이전 버전의 MongoDB와 호환되지 않는 데이터를 유지하는 기능을 활성화하거나 비활성화합니다.
admin
데이터베이스에 대해서만setFeatureCompatibilityVersion
을(를) 발행할 수 있습니다.
경고
이전 버전과 호환되지 않는 기능을 활성화하면 다운그레이드하기 전에 지속되는 이전 버전과 호환되지 않는 기능을 제거해야 하므로 다운그레이드 프로세스가 복잡해질 수 있습니다.
업그레이드 후에는 다운그레이드 가능성을 최소화하기 위해 번인 기간 동안 이전 버전과 호환되지 않는 기능을 활성화하지 않고 배포를 실행하도록 허용하는 것이 좋습니다. 다운그레이드 가능성이 매우 낮다고 확신하는 경우 이 기능을 활성화합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 형식을 취합니다.
db.adminCommand( { setFeatureCompatibilityVersion: <version>, writeConcern: { wtimeout: <timeout> } } )
version
의 값은 다음과 같습니다.
버전 | 설명 |
---|---|
| MongoDB 5.0 에서 사용 가능 배포 |
| MongoDB 4.4 및 5.0 배포에서 사용 가능 MongoDB 4.2 과 호환되지 않는 데이터를 유지하는 4.4 기능을 활성화합니다. |
| MongoDB 4.4 배포에서 사용 가능 MongoDB 4.2 과 호환되지 않는 데이터를 유지하는 4.4 기능을 비활성화합니다. |
쓰기 고려
옵션
writeConcern
은 쓰기 고려 wtimeout
값을 밀리초 단위로 지정합니다.
행동
백그라운드 작업과의 충돌
특정 백그라운드 작업으로 인해 setFeatureCompatibilityVersion
이 실행되지 않을 수 있습니다. currentOp
를 사용하여 진행 중인 작업을 식별하세요.
동기화 실패
초기 동기화 중에 setFeatureCompatibilityVersion
변경 사항을 트리거하면 oplog
애플리케이션 단계에서 항목을 재생할 때 OplogOperationUnsupported
오류 메시지와 함께 동기화가 실패할 수 있습니다. 이 시도 이후의 동기화는 작업 단계에서 더 이상 작업을 재생하지 않기 때문에 성공합니다.
Default Values
배포 | featureCompatibilityVersion |
---|---|
새로운 5.0 배포의 경우 |
|
4.4에서 업그레이드된 5.0 배포의 경우 |
|
멱등성
이 명령은 내부 시스템 컬렉션에 대한 쓰기를 수행해야 합니다. 어떤 이유로든 명령이 성공적으로 완료되지 않는 경우 작업이 무력하므로 명령을 안전하게 다시 시도할 수 있습니다.
중재자의 기능 호환성
중재자는 admin.system.version
컬렉션을 복제하지 않습니다. 이로 인해 중재자는 복제본 세트의 FCV 값에 관계없이 바이너리의 다운그레이드 버전과 동일한 기능 호환성 버전을 항상 갖게 됩니다.
그 예로 MongoDB 5.0 클러스터에 속한 중재자의 FCV 값은 4.4입니다.
예시
FeatureCompatibilityVersion 보기
mongod
인스턴스 의 featureCompatibilityVersion
를 보려면 mongod
인스턴스 에서 다음 명령을 실행 합니다.
참고
작업이 mongos
인스턴스에서 정의되지 않았습니다. 액세스 제어가 활성화된 샤드 클러스터의 경우, 샤드 복제본 세트의 멤버에 대해 명령을 실행하려면 샤드 로컬 사용자로 멤버에 연결해야 합니다.
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
이 명령의 출력은 mongod
의 현재 상태에 따라 다음 중 하나와 유사합니다.
배포에 기본
featureCompatibilityVersion
가 있거나 배포에 대해setFeatureCompatibilityVersion
명령이 성공적으로 실행된 경우featureCompatibilityVersion
형식은 다음과 같습니다."featureCompatibilityVersion" : { "version" : <version> } mongod
가 부분적으로 업그레이드되거나 다운그레이드된 상태인 경우featureCompatibilityVersion
는 다음과 같은 형식을 갖습니다."featureCompatibilityVersion" : { "version" : <version> , "targetVersion" : <target version> } 예를 들어, 샤드 클러스터에 에 대해 명령을 실행할 때 읽기
setFeatureCompatibilityVersion
mongos
전용인 샤드 복제본 세트가 있는 경우, 명령은featureCompatibilityVersion
실패하고 configtargetVersion
서버의 에 필드가 포함됩니다. .또는
setFeatureCompatibilityVersion
가 실행되는 동안 복제본 세트가 읽기 전용이 되면 명령이 실패하고 복제본 세트의featureCompatibilityVersion
에targetVersion
필드도 포함됩니다.
MongoDB 5.0 배포에서 기능 호환성 버전 설정
5.0 이전 버전과 호환되지 않는 기능 활성화
MongoDB 4.4와 호환되지 않는 데이터를 유지하는 5.0 기능을 활성화하려면 MongoDB 5.0 배포에서 기능 호환성을 "5.0"
으로 설정합니다.
참고
admin
데이터베이스에 대해 setFeatureCompatibilityVersion
명령을 실행합니다.
db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
5.0 이전 버전과 호환되지 않는 기능 비활성화하기
MongoDB 4.4와 호환되지 않는 데이터를 유지하는 5.0 기능을 비활성화하려면 MongoDB 5.0 배포에서 기능 호환성을 "4.4"
으로 설정합니다.
참고
admin
데이터베이스에 대해 setFeatureCompatibilityVersion
명령을 실행합니다.
독립형의 경우, 독립형
mongod
인스턴스에서 명령을 실행합니다.복제본 세트의 경우 프라이머리에서 명령을 실행합니다. 데이터를 포함하는 멤버의 대부분을 사용할 수 있어야 합니다.
샤딩된 클러스터의 경우
mongos
인스턴스에서 명령을 실행합니다.
"4.4"
featureCompatibilityVersion은 MongoDB 4.4 및 MongoDB 5.0 배포에서만 지원됩니다.
db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
MongoDB 5.0에서 4.4로 다운그레이드하는 downgrade 프로세스의 일부로 실행하는 경우, 4.4와 호환되지 않는 모든 영구 기능도 제거해야 합니다. 적절한 다운그레이드 절차를 참조하세요.
쓰기 고려 시간 초과 설정
다음 예시에서는 선택적 쓰기 고려 wtimeout
필드를 5000(5초)으로 설정합니다.
참고
admin
데이터베이스에 대해 setFeatureCompatibilityVersion
명령을 실행합니다.
db.adminCommand( { setFeatureCompatibilityVersion: "5.0", writeConcern: { wtimeout: 5000 } } )