0

只是想更清楚地了解当 RangeShardMappings 标记为离线时会发生什么。

我了解需要将映射设置为离线以更新和删除分片和映射。

我想保留映射但阻止 Azure Map Manager 在任何特定时间使用特定映射,我希望只需将它们标记为脱机就可以做到这一点,但它似乎对搜索结果没有影响。

根据 MS Docs ( https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-scale-shard-map-management )

仅当映射处于“离线”状态时才允许对分片映射进行某些操作,包括 UpdateMapping 和 DeleteMapping。当映射离线时,基于该映射中包含的键的数据相关请求将返回错误。此外,当一个范围首次脱机时,所有与受影响分片的连接都会自动终止,以防止针对更改范围的查询的不一致或不完整的结果。

然而,这不是我正在经历的行为。离线地图仍在返回结果集。这些映射是否存储在缓存中?

4

1 回答 1

1

将映射标记为离线的主要目的是防止使用OpenConnectionForKey. 映射仍然可见,毕竟如果映射不可见,那么您以后将无法将其标记回联机状态。

离线地图仍在返回结果集。

啊,现在我明白你的问题了。分片映射管理器不了解或控制数据库中的基础数据。这意味着分片映射有可能是您的责任,以确保您的查询where子句包含与您请求的映射匹配的过滤器。您还可以使用行级安全性来确保您的查询只返回正确的结果集。

于 2017-02-16T07:33:00.053 回答