我在为系统创建新分片时遇到了麻烦。我有一个已经分片的数据库,有两个分片。
0-280000
280000-INF
我正在使用Microsoft提供的this应用程序。
使用上面的应用程序我选择添加分片,当我尝试添加新的分片并输入400000作为新的高键时,执行操作,并在最后尝试添加范围映射时,我得到以下内容错误。
错误
{“映射引用分片'[DataSource = xxxxxxxxxxxxxx 无法添加分片地图中的“User = xxxxxx]”'UserID',因为 它覆盖的范围已经由另一个映射映射。错误 执行存储过程时发生 '__ShardManagement.spBulkOperationShardMappingsGlobalBegin'for 操作'AddRangeMapping'。如果另一个并发用户,可能会发生 已添加覆盖给定范围的映射。“}
在这方面的任何帮助将受到高度赞赏。
答案 0 :(得分:5)
如果您的第二个碎片实际上是280000-inf,其中inf意味着无穷大,那么您收到的错误是正确的。第二个分片已包含400000的映射。您需要拆分第二个分片,而不是添加分片。请改为使用split-merge工具。