Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
/ / /

복제본 세트를 임베디드 구성 샤드로 변환

MongoDB 8.0 부터는 일반적인 샤딩된 클러스터 메타데이터 외에 애플리케이션 데이터를 저장 하도록 config 서버 를 구성할 수 있습니다. 애플리케이션 데이터를 저장하는 config 서버 를 config 샤드 또는 임베디드 config 서버 라고 합니다.

복제본 세트 구성 샤드 가 샤딩된 클러스터 로 변환하면 다음을 줄일 수 있습니다.

  • 배포서버 에 필요한 노드 수입니다.

  • 1개의 샤드 클러스터를 유지 관리하기 위한 복잡성.

MongoDB 8.3부터는 구성 샤드 내장된 샤딩된 클러스터 로 복제본 세트 직접 변환할 수 있습니다.

이전 릴리스에서는 먼저 복제본 세트 전용 config 서버 복제본 세트 있는 샤딩된 클러스터 로 변환한 다음 포함된 구성 샤드 있는 클러스터로 변환해야 합니다.

액세스 제어가 활성화된 경우 transitionFromDedicatedConfigServer 명령에는 transitionFromDedicatedConfigServer 권한 부여 조치가 클러스터에 필요합니다.

clusterManager 역할 에는 transitionFromDedicatedConfigServer 권한 부여 조치 가 있으며 사용자에게 할당할 수 있습니다.

MongoDB 8.3부터는 이전에 클러스터를 샤딩된 복제본 세트를 복제본 세트로 다시 변환할 수 없습니다.

샤딩된 클러스터 를 복제본 세트 로 변환하면 샤드 ID document 포함하여 이전 배포서버 의 샤딩 메타데이터 보존되어 다시 샤딩된 클러스터 되는 것을 차단합니다. 샤딩된 클러스터 로 자체 관리형 변환을 다시 시도하면 MongoDB 오류를 반환합니다.

이러한 복제본 세트를 샤딩된 클러스터로 변환하려면 기술 지원팀에문의 .

다음 예시 자체 관리형 복제본 세트 복제본 세트 의 기존 사용자 데이터가 포함된 구성 샤드 로 변환합니다.

1

복제본 세트 에서 롤링 재시작 수행합니다. 유지 관리 모드 에서 각 노드 config 서버 로 시작합니다.

  1. 세컨더리 노드부터 시작하여 각 노드 중지합니다. 서버 종료하려면 db.shutdownServer() 메서드를 사용합니다.

    db.shutdownServer()
  2. 유지 관리 모드 에서 노드 config 샤드 로 다시 시작합니다.

    mongod --config /etc/mongodb.conf --configsvr \
    --replicaSetConfigShardMaintenanceMode \
    --configsvr
    mongod 인스턴스 config 서버로 시작합니다.
    --replicaSetConfigShardMaintenanceMode
    일부 스타트업 검사를 비활성화하고 서버 내장된 구성 샤드 로 변환할 수 있는 구성 샤드 유지 관리 모드 활성화합니다.
  3. 노드 복제본 세트 다시 참여할 때까지 기다렸다가 다음 노드를 다시 시작하세요.

2

rs.status() 메서드를 사용하여 새 프라이머리 노드 식별합니다. 큰 복제본 세트 있는 경우 db.aggregate() 메서드를 사용하여 검색 좁힙니다.

db.aggregate( [
{ $documents: rs.status().members },
{ $match: { stateStr: "PRIMARY" } },
{ $project: { _id: 1, name: 1 }
] )
[ { _id: 3, name: "192.0.2.3:27017" } ]
3

프라이머리 노드 에 연결하고 내장된 구성 샤드 로 작동하도록 재구성합니다.

  1. rs.conf() 메서드를 사용하여 현재 구성을 GET 변수에 저장 .

    var conf = rs.conf()
  2. configsvr 필드 설정합니다.

    conf.configsvr = true
  3. version 필드 증가시킵니다.

    conf.version += 1
  4. 노드 재구성합니다.

    rs.reconfig(conf)
  5. 세컨더리가 변경 사항을 복제할 때까지 기다립니다. 노드 document에서 집계 파이프라인 실행 하여 상태를 확인할 수 있습니다.

    db.aggregate( [
    { $documents: rs.status().members },
    { $group: {
    _id: null,
    allConfigSvr: {
    $min: { $eq: ["$configsvr", true] }
    }
    } }
    ] )
    { _id: null, allConfigSvr: true }

    allConfigSvrtrue이 표시되면 재구성이 클러스터 의 모든 노드에 전파되었음을 나타냅니다.

4

롤링 업그레이드 수행하여 복제본 세트 config 서버 로 다시 시작합니다.

  1. 세컨더리 노드부터 시작하여 각 노드 중지합니다. 서버 종료하려면 db.shutdownServer() 메서드를 사용합니다.

    db.shutdownServer()
  2. 더 이상 유지 관리 모드 아닌 config 서버 로 노드 다시 시작합니다.

    mongod --config /etc/mongodb.conf --configsvr
5

mongos 라우터를 시작합니다.

mongos --config /etc/mongodb.conf
6

mongos 에 연결하고 transitionFromDedicatedConfigServer 명령을 실행 클러스터에 구성 샤드 추가합니다.

db.adminCommand( { transitionFromDedidcatedConfigServer: 1 } )
7

복제본 세트 멤버 대신 mongos 라우터에 연결하도록 애플리케이션을 업데이트합니다.

돌아가기

구성 샤드

이 페이지의 내용