sh.removeRangeFromZone()
정의
sh.removeRangeFromZone(namespace, minimum, maximum)
샤드 키 값 범위 와 구역 간의 연결을 제거합니다.
sh.removeRangeFromZone()
은(는) 다음 필드를 사용합니다.Parameter유형설명namespace
문자열
구역과 연결할 샤드 컬렉션의 네임스페이스 입니다.
작업이 성공하려면 컬렉션을 샤딩해야 합니다.
minimum
문서
샤드 키 값 범위의 포괄적 하한입니다.
샤드 키의 각 필드를
<fieldname> : <value>
형식으로 지정합니다. 값은 샤드 키와 동일한 BSON 유형이어야 합니다.maximum
문서
샤드 키 값 범위의 배타적 상한입니다.
샤드 키의 각 필드를
<fieldname> : <value>
형식으로 지정합니다. 값은 샤드 키와 동일한 BSON 유형이어야 합니다.사용하지 않거나, 오래되었거나, 충돌하는 샤드 키 범위와 구역 간의 연결을 제거하려면
sh.removeRangeFromZone()
를 사용합니다.sh.removeRangeFromZone()
에 전달된 최소 및 최대 범위와 일치하는 범위가 없는 경우 아무것도 제거되지 않습니다.mongos
인스턴스에 연결된 경우에만sh.removeRangeFromZone()
를 실행합니다.
호환성
이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
중요
이 명령은 M0, M2 및 M5 클러스터에서 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
행동
sh.removeRangeFromZone()
구역과 샤드 간의 연결을 제거하지 않습니다. 또한 구역 자체는 제거되지 않습니다.
샤드 클러스터의 구역에 대한 자세한 내용은 구역 매뉴얼 페이지를 참조하세요.
밸런서
범위와 구역 간의 연결을 제거하면 제약 조건이 제거되어 청크가 해당 구역 내부의 샤드 범위에 포함되도록 유지됩니다. 다음 밸런서 라운드에서 밸런서는 이전에 해당 구역에 포함된 청크를 마이그레이션할 수 있습니다.
샤드 cluster에서 마이그레이션이 작동하는 방식에 대한 자세한 내용은 샤드 cluster 밸런서 설명서를 참조하세요.
보안
authentication 으로 실행되는 샤드 클러스터의 경우 다음 중 하나를 사용하여 인증해야 합니다.
config
데이터베이스의 다양한 컬렉션에 대해 지정된 작업이 포함된 권한을 가진 사용자입니다.또는
클러스터 리소스에 대한 가
enableSharding
포함된 권한을 가진 사용자입니다.
clusterAdmin
또는 clusterManager
기본 제공 역할에는 sh.removeRangeFromZone()
실행에 필요한 적절한 권한이 있습니다. 자세한 내용은 역할 기반 액세스 제어 에 대한 설명서 페이지를 참조하세요.
예시
샤드 키가 { a
: 1 }
인 샤드된 collection exampledb.collection
이 주어지면 다음 작업은 하한이 1
이고 상한이 10
인 범위를 제거합니다.
sh.removeRangeFromZone( "exampledb.collection", { a : 1 }, { a : 10 } )
min
및 max
는 대상 범위의 경계와 정확히 일치해야 합니다. 다음 작업은 이전에 생성된 범위를 제거하려고 시도하지만 { a : 0 }
를 min
바운드로 지정합니다.
admin = db.getSiblingDB("admin") admin.runCommand( { updateZoneKeyRange : "exampledb.collection", min : { a : 0 }, max : { a : 10 }, zone : null } )
{ a : 0 }
및 { a : 10 }
범위는 기존 범위를 포함하지만 정확히 일치하지 않으므로 sh.removeRangeFromZone()
은(는) 아무것도 제거하지 않습니다.
복합 샤드 키
샤드 키가 { a : 1, b : 1 }
인 샤드된 collection exampledb.collection
이 주어지면 다음 작업은 하한이 { a : 1, b : 1}
이고 상한이 { a : 10, b : 10 }
인 범위를 제거합니다.
sh.removeRangeFromZone( "exampledb.collection", { a : 1, b : 1 }, { a : 10, b : 10 } )
이전 예제를 고려할 때 하한이 { a : 1, b : 5 }
이고 상한이 { a : 10, b : 1 }
인 기존 범위가 있는 경우, 해당 범위는 전달된 최소값과 최대값이 정확히 일치하지 않기 때문에 작업을 통해 해당 범위를 제거할 수 없습니다. sh.removeRangeFromZone()
.