从天蓝色弹性池中的分片映射中删除分片时遇到问题
var isMapKeyExists = shardMap.TryGetMappingForKey(tenantId, out PointMapping<int> pointMapping);
if(pointMapping.Status == MappingStatus.Online)
{
pointMapping = shardMap.MarkMappingOffline(pointMapping);
}
if (isMapKeyExists)
{
shardMap.DeleteMapping(pointMapping);
Thread.Sleep(TimeSpan.FromSeconds(30));
if (enableDedicatedDb)
{
shardMap.DeleteShard(shard);
}
}
所以首先我只是从 shardMap 中删除了映射,但是一旦我从 shardMap 中删除了 deleteShard,我就会得到以下信息:
属于分片映射“UserIdShardMap”的分片“[DataSource=*** Database=Test21]”已在存储中更新。为操作“DeleteShard”执行存储过程“__ShardManagement.spBulkOperationShardsGlobalBegin”时出错。如果另一个并发用户更新分片,则可能会发生这种情况。对分片位置执行 GetShard 操作以获取更新的实例。有人可以帮我吗?