2017-02-15 1 views
0

RangeShardMappings이 오프라인으로 표시 될 때 어떤 일이 발생하는지 명확하게 파악하기 만하면됩니다.Azure Elastic Scale : MarkMappingOffline은 파편이 검색되는 것을 막지 않습니다.

샤드와 매핑을 업데이트하고 삭제하기 위해 매핑을 오프라인으로 설정해야한다는 것을 알고 있습니다.

매핑을 유지하고 특정 맵핑을 사용하여 특정 맵핑을 사용하지 못하도록하고 싶습니다. 오프라인으로 표시하는 것이 좋지만 검색 결과에는 아무런 영향을 미치지 않는 것으로 보입니다. MS 오피스 (https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-scale-shard-map-management) 매핑이 UpdateMapping 및 DeleteMapping 포함하는 "오프라인"상태에있을 때, 샤드 매핑에

특정 작업만을 허용 따르면

. 매핑이 오프라인 인 경우 해당 매핑에 포함 된 키를 기반으로하는 데이터 종속 요청은 오류를 반환합니다. 또한 범위를 처음 오프라인으로 설정하면 영향을받는 샤드 에 대한 모든 연결이 일치하지 않거나 범위가 변경되는 쿼리에 대한 불완전한 결과가 발생하지 않도록 자동으로 종료됩니다.

그러나 이것은 내가 경험하는 동작이 아닙니다. 오프라인지도는 여전히 결과 집합을 반환합니다. 이러한 매핑은 캐시에 저장되어 있습니까?

답변

1

매핑을 오프라인으로 표시하는 주요 목적은 OpenConnectionForKey을 사용하여 연결을 차단하는 것입니다. 매핑이 여전히 보이고, 매핑이 보이지 않는다면 나중에 온라인으로 다시 표시 할 방법이 없습니다.

오프라인지도는 여전히 결과 집합을 반환합니다.

아, 이제 귀하의 질문을 이해합니다. Shard 맵 매니저는 데이터베이스의 기본 데이터에 대한 지식이나 제어를 가지고 있지 않습니다. 즉, 샤드 맵이 요청한 매핑과 일치하는 필터 where 절을 포함하는지 확인하는 것은 사용자의 책임입니다. row-level security을 사용하여 쿼리가 올바른 결과 집합 만 반환하도록 할 수도 있습니다.

+0

감사합니다. Jared, 저는 OpenConnectionForKey를 사용하지 않았습니다. – redstubble

관련 문제