弹性数据库工具常见问题解答 (FAQ)

适用于:Azure SQL 数据库

如果我的分片只有单个租户并且我没有分片键,该如何为架构信息填充分片键

架构信息对象仅用于“拆分/合并”方案。 如果某个应用程序本质上是单租户,那么它则不需要“拆分/合并”工具,因此无需填充架构信息对象。

在已预配了一个数据库,并且已安装了分片映射管理器的情况下,应如何将此新数据库注册为分片?

弹性数据库工具的费用如何

使用弹性数据库客户端库不会产生任何费用。 只有用于分片和分片映射管理器的 Azure SQL 数据库中的数据库,以及为“拆分/合并”工具预配的 Web/辅助角色才会产生费用。

为什么当我从另一台服务器添加分片时,我的凭据不起作用

请不要使用“用户 ID=用户名@服务器名称”格式的凭据,而只需使用“用户 ID = 用户名”格式。 此外,请确保“用户名”登录名对分片具有权限。

是否我每次启动应用程序时,都需要创建分片映射管理器并填充分片

否 - 分片映射管理器(例如,ShardMapManagerFactory.CreateSqlShardMapManager)只需创建一次。 在启动应用程序时,应用程序应使用调用 ShardMapManagerFactory.TryGetSqlShardMapManager()。 每个应用程序域只应有一个这样的调用。

当使用分片键建立数据库连接的同时,仍然可以对同一分片上的其他分片键查询数据。 这是设计使然吗

弹性缩放 API 使用户能够连接到分片键的正确数据库,但不提供分片键筛选。 如果需要,请在查询中添加 WHERE 子句,以将范围限制到提供的分片键。

是否可对分片集中的每个分片使用不同的 SQL 数据库版本?

是的,每个分片是单独的数据库,因此,一个分片可以是高级版,而另一个可以是标准版。 此外,在分片的生命周期内,该分片的版本可以进行多次上调或下调。

在拆分或合并操作期间,“拆分/合并”工具是否会设置(或删除)数据库

不是。 对于 拆分 操作,必须存在目标数据库和相应的架构,并且必须注册到分片映射管理器。 对于 合并 操作,必须从分片映射管理器中删除分片,并删除数据库。

尚未使用弹性数据库工具? 请查看入门指南