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

9.0 다운그레이드 8.3에 대한 샤드 클러스터

다운그레이드를 시도하기 전에 이 페이지의 내용을 숙지합니다.

중요

클러스터 업그레이드 하거나 다운그레이드하기 전에 모든 클러스터 멤버가 실행 중인지 확인합니다. 그렇지 않으면 모든 구성원이 시작될 때까지 업그레이드 또는 다운그레이드가 완료되지 않습니다.

9.0 에서 다운그레이드해야 하는 경우 8.3 의 최신 패치 출시하다 로 다운그레이드합니다.

MongoDB 인접한 버전에 대한 단일 버전 다운그레이드만 지원합니다. 현재 출시하다 보다 이전 버전인 출시하다 로 다운그레이드할 수 없습니다.

모든 MongoDB 출시하다 의 경우 바로 이전의 메이저 또는 마이너 버전으로 업그레이드 하거나 다운그레이드할 수 있습니다.

다운그레이드 절차를 시작하기 전에 다음 사전 필수 단계를 완료해야 합니다.

1

선택 사항이지만 권장됩니다. 데이터베이스의 백업을 만듭니다.

백업 을 만드는 방법을 학습 보려면 자체 관리 배포서버를 위한 백업 방법을 참조하세요.

2

9.0에서 8.3로 다운그레이드하려면 8.3와 호환되지 않는 9.0 기능을 제거 해야 합니다. 호환되지 않는 기능 목록과 해당 기능을 제거 방법은 이전 버전과 호환되지 않는 기능을 참조하세요.

3

Ensure that any resharding operations have successfully completed. 프라이머리 페일오버로 인해 최근의 리샤딩 작업이 실패한 경우 샤딩된 클러스터의 featureCompatibilityVersion 를 다운그레이드하기 전에 먼저 abortReshardCollection 명령을 실행해야 합니다.

샤드 cluster의 featureCompatibilityVersion 를 다운그레이드하는 동안 리샤딩 작업이 여전히 실행 중이면 리샤딩 작업이 완료되지 않습니다.

4

샤딩된 클러스터 의 FCV 다운그레이드하려면 다음을 수행합니다.

  1. 초기 동기화가 진행 중이 아닌지 확인합니다. 초기 동기화가 진행 중일 때 setFeatureCompatibilityVersion 명령을 실행하면 초기 동기화가 다시 시작됩니다.

  2. 복제본 세트 구성 에 newlyAdded 필드가 있는 노드가 없는지 확인합니다. 복제본 세트의 각 노드에서 다음 명령을 실행하여 이를 확인합니다.

    use local
    db.system.replset.find( { "members.newlyAdded" : { $exists : true } } );

    newlyAdded 필드는 초기 동기화 중과 초기 동기화 직후 노드의 복제본 세트 구성 문서에 나타납니다.

  3. ROLLBACK 또는 RECOVERING 상태에 있는 복제본 세트 멤버가 없는지 확인합니다.

  4. 를 mongosh mongos사용하여 에 연결합니다.

  5. featureCompatibilityVersion을 "8.3"로 다운그레이드합니다.

    중요

    binary 버전을 다운그레이드하기 전에 이전 버전과 호환되지 않는 기능 을 모두 제거했는지 확인하세요. 계속 진행하기 전에 업그레이드 경로를 평가해야 합니다.

    db.adminCommand( { setFeatureCompatibilityVersion: "8.3", confirm: true } )

    setFeatureCompatibilityVersion 명령은 내부 시스템 컬렉션에 대한 쓰기를 수행하며 멱등원입니다. 명령이 성공적으로 완료되지 않으면 mongos 인스턴스에서 명령을 다시 시도합니다.

    참고

    9.0에서 FCV 다운그레이드하면 MongoDB 샤드에서 config 서버 로 메타데이터 다시 이동합니다. 이 전환 과정에서 FCV 다운그레이드는 다음을 포함한 청크 작업을 배출하고 차단합니다.

    FCV 다운그레이드가 완료된 후 청크 작업이 재개됩니다.

    참고

    문제 해결

    • 샤딩된 클러스터에서 setFeatureCompatibilityVersion가 실행되는 동안 청크 마이그레이션, 분할 및 병합은 ConflictingOperationInProgress로 인해 실패할 수 있습니다.

    • setFeatureCompatibilityVersion 가 ManualInterventionRequired 오류와 함께 실패하고 클러스터가 최근에 투표로 인해 실패한 리샤딩 작업을 거친 경우 setFeatureCompatibilityVersion 실행을 다시 시도하기 전에 abortReshardCollection 명령을 실행해야 합니다.

  6. 복제본 세트의 모든 멤버에 업데이트된 featureCompatibilityVersion 이(가) 있는지 확인하려면 각 복제본 세트 멤버에 연결하여 featureCompatibilityVersion 을(를) 확인합니다.

    팁

    액세스 제어

    액세스 제어가 활성화된 shard cluster의 경우 shard 복제본 세트 멤버에서 adminCommand 를 실행하려면 샤드 로컬 사용자로 멤버에 연결해야 합니다.

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

    멤버가 "9.0" 의 featureCompatibilityVersion 를 반환하는 경우 계속하기 전에 멤버가 버전 "8.3" 을 반환할 때까지 기다립니다.

반환된 featureCompatibilityVersion 값에 대한 자세한 내용은 FeatureCompatibilityVersion 가져오기를 참조하세요.

경고

다운그레이드 절차를 진행하기 전에 지연된 복제본 세트 멤버를 포함한 모든 cluster 멤버에 사전 변경 사항이 있는지 확인하세요. 이렇게 하려면 featureCompatibilityVersion 확인하고 다운그레이드하기 전에 각 노드에 대해 호환되지 않는 기능을 제거합니다.

1

패키지 관리자 또는 수동 다운로드 사용하여 8.3의 최신 릴리스 GET 다운로드합니다. 패키지 관리자를 사용하는 경우 8.3 바이너리에 대한 새 리포지토리 추가한 다음 실제 다운그레이드 프로세스 수행합니다.

중요

클러스터 업그레이드 하거나 다운그레이드하기 전에 모든 클러스터 멤버가 실행 중인지 확인합니다. 그렇지 않으면 모든 구성원이 시작될 때까지 업그레이드 또는 다운그레이드가 완료되지 않습니다.

9.0 에서 다운그레이드해야 하는 경우 8.3 의 최신 패치 출시하다 로 다운그레이드합니다.

2

8.3 바이너리가 시스템 경로에 있는지 확인합니다. binary 버전을 확인하려면 다음 명령을 실행 .

mongod --version

명령 출력에 8.3 출시하다 표시되어야 합니다.

3

밸런서 비활성화하려면 를 샤딩된 클러스터 의 인스턴스 mongosh mongos에 연결하고 다음 명령을 실행 .

sh.stopBalancer()

참고

마이그레이션이 진행 중인 경우, MongoDB는 밸런서를 중지하기 전에 진행 중인 마이그레이션을 완료합니다. 밸런서의 현재 상태를 확인하려면 sh.isBalancerRunning() 를 실행합니다.

밸런서가 비활성화되었는지 확인하려면 다음 명령을 실행합니다.

sh.getBalancerState()

밸런서가 비활성화된 경우 sh.getBalancerState() 는 false 을 반환합니다.

밸런서 비활성화에 대한 자세한 내용은 밸런서 비활성화를 참조하세요.

4
  1. mongos 을 중지하려면 다음 명령을 실행합니다.

    db.shutdownServer()
  2. 8.3 바이너리로 mongos 를 다시 시작합니다.

5
  1. 샤드의 세컨더리 멤버를 한 번에 하나씩 다운그레이드합니다.

    1. 멤버를 종료합니다.

      mongod 프로세스 종료하려면 를 사용하여 배포서버 에 연결하고 다음 명령을 실행 mongosh .

      db.adminCommand( { shutdown: 1 } )
    2. 멤버를 다시 시작합니다.

      mongod 프로세스를 시작하려면 다음 명령을 실행합니다:

      mongod --dbpath </path-to-data-folder>
    3. 멤버가 SECONDARY 상태가 될 때까지 기다립니다.

      다음 세컨더리 다운그레이드하기 전에 멤버가 상태 로 복구될 때까지 SECONDARY 기다립니다. 멤버의 상태 확인하려면 mongosh 에서 rs.status()메서드를 사용합니다.

    4. 각 세컨더리 멤버를 다운그레이드하려면 이전 단계를 반복합니다.

  2. 샤드 중재자(있는 경우)를 다운그레이드합니다.

    복제본 세트에 중재자가 포함되어 있지 않으면 이 단계를 건너뛰세요.

    cluster의 중재자 멤버를 다운그레이드합니다.

    1. 멤버를 종료합니다.

      중재자 종료하려면 를 사용하여 중재자 에 연결하고 다음 명령을 실행 mongosh .

      db.adminCommand( { shutdown: 1 } )
    2. 중재자 데이터 디렉토리의 내용을 삭제합니다.

      중재자 mongod 의 데이터 디렉토리를 찾으려면 storage.dbPath 구성 설정 또는 --dbpath 명령줄 옵션을 확인하세요.

      다음 명령을 실행합니다:

      rm -rf /path/to/mongodb/datafiles/*
    3. 중재자를 다시 시작합니다.

      mongod 프로세스를 시작하려면 다음 명령을 실행합니다:

      mongod --dbpath </path-to-mongodb-datafiles>
    4. 멤버가 ARBITER 상태가 될 때까지 기다립니다.

      프라이머리 다운그레이드하기 전에 멤버가 상태 로 복구될 때까지 ARBITER 기다립니다. 멤버의 상태 확인하려면 에서 rs.status() mongosh 메서드를 사용합니다.

  3. 샤드 프라이머리를 다운그레이드합니다.

    1. 프라이머리을 내려놓습니다.

      에서 를 mongosh rs.stepDown() 사용하여 프라이머리 물러나고 새 프라이머리 에 대한 투표 시작합니다.

      rs.stepDown()
    2. 프라이머리가 물러났는지 확인합니다.

      다음 명령을 실행합니다:

      rs.status()

      프라이머리가 물러나고 다른 멤버가 PRIMARY 상태를 취했는지 확인합니다.

    3. 이전 프라이머리 멤버를 종료합니다.

      이전 프라이머리 종료하려면 를 사용하여 배포서버 에 연결하고 다음 명령을 실행 mongosh .

      db.adminCommand( { shutdown: 1 } )
    4. 8.3 바이너리로 mongod 를 다시 시작합니다.

      mongod 프로세스를 시작하려면 다음 명령을 실행합니다:

      mongod --dbpath </path-to-mongodb-datafiles>
    5. 나머지 샤드에 대해서도 이 과정을 반복합니다.

6
  1. config 서버 복제본 세트(CSRS)의 샤드 보조 구성원을 한 번에 하나씩 다운그레이드합니다.

    1. 세컨더리를 종료합니다.

      세컨더리에 연결하고 다음 명령을 실행합니다.

      db.adminCommand( { shutdown: 1 } )
    2. 멤버를 다시 시작합니다.

      mongod 프로세스를 시작하려면 다음 명령을 실행합니다:

      mongod --dbpath </path-to-data-folder>
    3. 멤버가 SECONDARY 상태가 될 때까지 기다립니다.

      다음 세컨더리 다운그레이드하기 전에 멤버가 상태 로 복구될 때까지 SECONDARY 기다립니다. 멤버의 상태 확인하려면 mongosh 에서 rs.status()메서드를 사용합니다.

    4. 각 세컨더리 멤버를 다운그레이드하려면 이전 단계를 반복합니다.

  2. config 서버 프라이머리를 다운그레이드합니다.

    1. 프라이머리을 내려놓습니다.

      mongosh 에서 rs.stepDown() 를 실행 하여 프라이머리 를 물러나고 새 프라이머리 에 대한 투표 를 시작합니다.

      rs.stepDown()
    2. 프라이머리가 물러났는지 확인합니다.

      다음 명령을 실행합니다:

      rs.status()

      프라이머리가 물러나고 다른 멤버가 PRIMARY 상태를 취했는지 확인합니다.

    3. 이전 프라이머리 멤버를 종료합니다.

      이전 프라이머리 종료하려면 를 사용하여 배포서버 에 연결하고 다음 명령을 실행 mongosh .

      db.adminCommand( { shutdown: 1 } )
    4. 8.3 바이너리로 mongod 를 다시 시작합니다.

      mongod 프로세스를 시작하려면 다음 명령을 실행합니다:

      mongod --dbpath </path-to-mongodb-datafiles>
7

모든 샤드 cluster 구성 요소를 다운그레이드한 후 mongos 에 연결하고 다음 명령을 실행하여 balancer를 다시 활성화합니다.

sh.startBalancer()

sh.startBalancer() 메서드를 사용하면 샤딩된 cluster에 대한 자동 분할도 활성화됩니다.