복제본 세트를 5.0으로 업그레이드하기
이 튜토리얼을 사용하여 MongoDB 4.4 에서 MongoDB 5.0 로 업그레이드 합니다. 동일한 출시하다 시리즈 내의 새 패치 출시하다 로 업그레이드 하려면 MongoDB 의 최신 자체 관리 패치 릴리스로 업그레이드를 참조하세요.
MongoDB 5.0으로 업그레이드하기 전에 사전 요구 사항을 철저히 검토하는 것을 포함하여 이 문서의 내용을 숙지하십시오.
다음 단계에서는 복제본 세트 구성원인 mongod
을 버전 4.4에서 5.0으로 업그레이드하는 절차를 간략하게 설명합니다.
6.0으로의 업그레이드에 대한 지침이 필요한 경우, 5MongoDB 전문 서비스 팀이 MongoDB 애플리케이션의 지장을 주지 않고 원활하게 전환할 수 있도록 주요 버전을 위한 업그레이드 지원을 제공합니다.
업그레이드 권장 사항 및 체크리스트
업그레이드할 때는 다음 사항을 고려하세요:
업그레이드 버전 경로
기존 MongoDB 배포를 5.0으로 업그레이드하려면 4.4 시리즈 릴리스를 실행 중이어야 합니다.
4.4 시리즈 이전 버전에서 업그레이드하려면 4 .4 시리즈로 업그레이드할 때까지 주요 릴리스를 연속적으로 업그레이드해야 합니다. 예를 들어 4.2 시리즈를 실행 중인 경우 5.0 버전으로 업그레이드하기 전에 먼저 4.4 버전으로 업그레이드해야 합니다.
드라이버 호환성 확인
MongoDB를 업그레이드하기 전에 MongoDB 5.0 호환 드라이버를 사용하고 있는지 확인합니다. 특정 드라이버의 드라이버 설명서를 참조하여 MongoDB 5.0과의 호환성을 확인하세요.
호환되지 않는 드라이버에서 실행되는 업그레이드된 배포에서 예기치 않거나 정의되지 않은 동작이 발생할 수 있습니다.
준비
업그레이드를 시작하기 전에 MongoDB 5.0의 호환성 변경 사항 문서를 참조하여 애플리케이션 및 배포가 MongoDB 5.0과 호환되는지 확인하세요. 업그레이드를 시작하기 전에 배포의 비호환성을 해결하세요.
MongoDB를 업그레이드하기 전에 프로덕션 환경에 업그레이드를 배포하기 전에 항상 스테이징 환경에서 애플리케이션을 테스트하십시오.
다운그레이드 고려 사항
MongoDB 7.0부터는 지원 없이 배포의 바이너리 버전을 다운그레이드할 수 없습니다.
자세한 내용은 7.0에서 6.0으로 다운그레이드를 참조하십시오.
전제 조건
복제본 세트를 업그레이드하기 전에 5.0으로 업그레이드할 때 발생할 수 있는 성능 영향에 대해 5.0 성능 고려 사항을 확인합니다.
TTL 구성이 유효한지 확인
TTL 컨피그레이션이 유효한지 확인합니다. 업그레이드하기 전에 expireAfterSeconds
가 NaN
로 설정된 TTL 인덱스를 모두 제거하거나 수정하십시오. MongoDB 5.0 이상에서는 expireAfterSeconds
를 NaN
로 설정하면 expireAfterSeconds
를 0
로 설정하는 것과 같은 효과가 있습니다. 자세한 내용은 NaN
설정 시 TTL expireAfterSeconds
동작을 참조하십시오.
모든 회원 버전
모든 복제본 세트 멤버는 버전 4.4를 실행 중이어야 합니다. 4.2시리즈 이전 버전에서 복제본 세트를 업그레이드하려면 먼저 복제본 세트의 모든 멤버를 최신 4.4시리즈 릴리스로 업그레이드한 다음 MongoDB 4.4 에서 5.0로 업그레이드하는 절차를 따르세요.
클린 종료 확인
복제본 세트의 구성원을 업그레이드하기 전에 해당 구성원이 완전히 종료되었는지 확인합니다.
기능 호환성 버전
4.4 복제본 세트에는 featureCompatibilityVersion
"4.4"
로 설정되어 있어야 합니다.
복제 세트의 모든 구성원이 featureCompatibilityVersion
("4.4"
) 로 설정되었는지 확인하려면 각 복제 세트 구성원에 연결하고 featureCompatibilityVersion
를 확인합니다.
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
모든 멤버는 "featureCompatibilityVersion" : { "version" : "4.4" }
을 포함하는 결과를 반환해야 합니다.
0}을 설정하거나 업데이트하려면 featureCompatibilityVersion
기본값에서 다음 명령을 실행합니다. 데이터를 포함하는 구성원의 대부분을 사용할 수 있어야 합니다.
db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
복제본 세트 노드 상태.
2} 또는 상태의 ROLLBACK
RECOVERING
복제본 집합 구성원이 없는지 확인합니다.
5.0 바이너리 다운로드
패키지 관리자를 통해
MongoDB apt
, yum
, dnf
또는 zypper
리포지토리에서 MongoDB를 설치한 경우 패키지 관리자를 사용하여 5.0으로 업그레이드해야 합니다.
Linux 시스템에 적합한 5.0 설치 지침을 따르십시오. 여기에는 새 릴리스에 대한 리포지토리를 추가한 다음 실제 업그레이드 프로세스를 수행하는 작업이 포함됩니다.
수동으로
패키지 관리자를 사용하여 MongoDB를 설치하지 않은 경우, MongoDB 다운로드 센터에서 MongoDB 바이너리를 수동으로 다운로드할 수 있습니다.
자세한 내용은 5.0 설치 지침을 참조하세요.
업그레이드 프로세스
" 롤링 " 업그레이드를 사용하여 MongoDB 4.4에서 5.0으로 업그레이드하면 다른 멤버를 사용할 수 있는 동안 멤버를 개별적으로 업그레이드하여 다운타임을 최소화할 수 있습니다.
복제본 세트 기본값을 내려놓습니다.
프라이머리에 mongosh
를 연결하고 rs.stepDown()
을 사용하여 기존 프라이머리를 강등하고 강제로 새 프라이머리에 대한 투표를 진행합니다.
기본 계정을 업그레이드합니다.
2}에서 기본 구성원이 물러나고 다른 구성원이 상태를 rs.status()
맡게 PRIMARY
되면, 물러난 기본 구성원을 업그레이드합니다.
단계별 기본 복제본을 종료하고
mongod
바이너리를 5.0 바이너리로 바꿉니다.멤버를 다시 시작합니다.
이전 버전과 호환되는 5.0 기능을 활성화합니다.
현재로서는 4.4와 호환되지 않는 5.0 기능 없이 5.0 바이너리를 실행할 수 있습니다.
이러한 5.0 기능을 활성화하려면 기능 호환성 버전(fCV
)을 5.0으로 설정합니다.
팁
이전 버전과 호환되지 않는 이러한 기능을 활성화하면 다운그레이드하기 전에 이전 버전과 호환되지 않는 지속적인 기능을 제거해야 하므로 다운그레이드 프로세스가 복잡해질 수 있습니다.
업그레이드 후에는 다운그레이드 가능성을 최소화하기 위해 번인 기간 동안 이러한 기능을 활성화하지 않고 배포를 실행하도록 허용하는 것이 좋습니다. 다운그레이드 가능성이 매우 낮다고 확신하는 경우 이러한 기능을 활성화하십시오.
팁
초기 동기화가 진행 중이 아닌지 확인합니다. 초기 동기화가 진행 중일 때 setFeatureCompatibilityVersion
명령을 실행하면 초기 동기화가 다시 시작됩니다.
기본 데이터베이스에서 admin
데이터베이스의 setFeatureCompatibilityVersion
명령을 실행합니다.
db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
featureCompatibilityVersion(fCV): "5.0" 은 암시적으로 replSetReconfig
를 수행하여 구성 문서에 term
필드를 추가하고 새 구성이 대다수의 복제본 집합 멤버에게 전파될 때까지 차단합니다.
이 명령은 내부 시스템 컬렉션에 대한 쓰기를 수행해야 합니다. 어떤 이유로든 명령이 성공적으로 완료되지 않는 경우 작업은 무력하므로 주 서버에서 명령을 안전하게 재시도할 수 있습니다.
추가 업그레이드 절차
독립 실행형을 업그레이드하려면 독립 실행형을 5.0으로 업그레이드를 참조하세요.
샤딩된 클러스터를 업그레이드하려면 샤딩된 클러스터를 5.0으로 업그레이드를 참조하세요.