정의
내장된 config 서버 에서 전용 config 서버 로의 전환을 커밋합니다.
이 명령을 실행 하려면 startTransitionToDedicatedConfigServer 명령을 사용하여 전용 config 서버 로 전환해야 합니다. 이 명령은 밸런서 청크를 샤드 에서 클러스터 의 다른 샤드로 이동하도록 지시합니다. 또한 프라이머리 샤드 로 사용하는 데이터베이스와 샤드에 저장된 샤드 해제되지 않은 컬렉션을 수동으로 이동해야 합니다. commitTransitionToDedicatedConfigServer 명령을 실행 전에.
전용 config 서버 로의 전환이 완료되지 않았거나 데이터베이스 또는 샤딩되지 않은 컬렉션 포함된 경우 명령은 오류와 함께 ok: 0 를 반환합니다. 전환이 발생하고 모든 데이터베이스와 샤딩되지 않은 컬렉션이 샤드 에서 마이그레이션된 경우 명령은 ok: 1을 반환합니다.
전용 config 서버 로의 전환을 시작하려면 startTransitionToDedicatedConfigServer 명령을 참조하세요.
내장된 config 서버 에서 전용 config 서버 로의 전환 상태를 표시하려면 getTransitionToDedicatedConfigServerStatus 명령을 참조하세요.
내장된 config 서버 에서 전용 config 서버 로 진행 중인 전환을 중지하려면 stopTransitionToDedicatedConfigServer 명령을 실행합니다.
버전 8.3에 추가 되었습니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
참고
이 명령은 MongoDB Atlas에서 지원되지 않습니다. 내장된 config 서버 배출하도록 Atlas 샤드 클러스터 수정을 참조하세요.
구문
명령은 다음과 같은 구문을 가집니다:
db.adminCommand( { commitTransitionToDedicatedConfigServer: 1 } )
행동
액세스 요구 사항
authorization 을(를) 활성화한 경우 clusterManager 역할 또는 removeShard 작업을 포함하는 역할이 있어야 합니다.
데이터베이스 마이그레이션 요구 사항
샤딩된 클러스터 의 각 데이터베이스 에는 프라이머리 샤드 가 있습니다. 전환하는 샤드 클러스터 데이터베이스 중 하나의 프라이머리 이기도 한 경우, 샤드 에서 모든 데이터를 마이그레이션한 후 프라이머리 샤드 에서 새 샤드 로 데이터베이스를 수동으로 이동해야 합니다.
사용하려는 샤드 프라이머리 로 사용하는 데이터베이스 있는 경우 commitTransitionToDedicatedConfigServer 명령은 오류를 반환합니다.
자세한 내용은 movePrimary 명령 및 샤드 클러스터에서 샤드 제거 를 참조하세요.
컬렉션 마이그레이션 요구 사항
샤딩되지 않은 컬렉션은 개별 샤드에 저장됩니다. 이러한 컬렉션 중 하나가 포함된 구성 서버에서 전용 config 서버 로 전환하려는 샤드 에 있는 경우 먼저 컬렉션 다른 샤드 로 마이그레이션 해야 합니다.
포함된 구성 서버에서 전용 config 서버 로 전환하려는 샤드 에 저장된 비샤드형 컬렉션 있는 경우 commitTransitionToDedicatedConfigServer 명령은 오류를 반환합니다.
샤딩되지 않은 컬렉션 마이그레이션 하려면 moveCollection 명령을 참조하세요.
예시
샤드 배출 시작하려면 db.adminCommand() 메서드를 사용하여 startTransitionToDedicatedConfigServer 명령을 실행 .
db.adminCommand( { startTransitionToDedicatedConfigServer: "1" } )
배출 작업의 상태를 확인하려면 getTransitionToDedicatedConfigServerStatus 명령을 사용합니다.
db.adminCommand( { getTransitionToDedicatedConfigServerStatus: "1" } )
{ "state" : "drainingComplete", "msg" : "draining completed successfully", "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1772142838, 176), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } }, "operationTime" : Timestamp(1772142838, 174) }
출력에 dbsToMove 필드에 데이터베이스가 표시되면 movePrimary 명령을 사용하여 해당 데이터베이스를 다른 샤드로 이동합니다.
출력에 collectionsToMove 필드에 샤딩되지 않은 컬렉션이 표시되면 moveCollection 명령을 사용하여 컬렉션을 다른 샤드로 이동합니다.
getTransitionToDedicatedConfigServerStatus 에 { state:
"completed" }가 표시되면 밸런서가 샤드에서 청크 이동을 완료한 것입니다. 이제 샤드 제거 할 수 있습니다.
db.adminCommand( { commitTransitionToDedicatedConfigServer: "1" } )
{ "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1772142839, 19), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } }, "operationTime" : Timestamp(1772142839, 19) }