문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

sh.removeRangeFromZone()

이 페이지의 내용

  • 정의
  • 행동
  • 예제
sh.removeRangeFromZone(namespace, minimum, maximum)

샤드 키 값 범위와 구역 간의 연결을 제거합니다.

sh.removeRangeFromZone() 은(는) 다음 필드를 사용합니다.

매개변수
유형
설명
namespace
문자열

구역과 연결할 샤드 컬렉션의 네임스페이스 입니다.

작업이 성공하려면 컬렉션을 샤딩해야 합니다.

minimum
문서

샤드 키 값 범위의 포괄적 하한입니다.

샤드 키의 각 필드를 <fieldname> : <value> 형식으로 지정합니다. 값은 샤드 키와 동일한 BSON 유형이어야 합니다.

maximum
문서

샤드 키 값 범위의 배타적 상한입니다.

샤드 키의 각 필드를 <fieldname> : <value> 형식으로 지정합니다. 값은 샤드 키와 동일한 BSON 유형이어야 합니다.

사용하지 않거나, 오래되었거나, 충돌하는 샤드 키 범위와 구역 간의 연결을 제거하려면 sh.removeRangeFromZone() 를 사용합니다.

sh.removeRangeFromZone() 에 전달된 최소 및 최대 범위와 일치하는 범위가 없는 경우 아무것도 제거되지 않습니다.

mongos 인스턴스에 연결된 경우에만 sh.removeRangeFromZone() 를 실행합니다.

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 }
)

minmax 는 대상 범위의 경계와 정확히 일치해야 합니다. 다음 작업은 이전에 생성된 범위를 제거하려고 시도하지만 { 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().

← sh.moveChunk()

이 페이지의 내용