对来自 Azure SQL 托管实例的 Fabric 镜像数据库进行故障排除(预览版)
本文介绍镜像 Azure SQL 托管实例的故障排除步骤。
Fabric 容量或工作区的更改
原因 | Result | 建议的解决方案 |
---|---|---|
Fabric 容量已暂停/删除 | 镜像停止 | 1. 从 Azure 门户恢复或分配容量 2. 转到 Fabric 镜像数据库项。 在工具栏中,选择“停止复制”。 3. 通过在 Fabric 门户中为镜像项选择“镜像数据库”来启动复制。 |
已恢复 Fabric 容量 | 镜像未恢复 | 1. 转到 Fabric 镜像数据库项。 在工具栏中,选择“停止复制”。 2. 通过在 Fabric 门户中为镜像项选择“镜像数据库”来启动复制。 |
已删除工作区 | 镜像自动停止 | 1.如果镜像在 Azure SQL 托管实例上仍然处于活动状态,请在 Azure SQL 托管实例上执行以下存储过程:exec sp_change_feed_disable_db; 。 |
Fabric 试用容量已过期 | 镜像自动停止 | 请参阅 Fabric 试用容量过期。 |
用于故障排除的 T-SQL 查询
如果遇到镜像问题,请使用动态管理视图 (DMV) 和存储过程执行以下数据库级检查,以验证配置。
执行下面的查询,检查更改是否正确得到应用:
SELECT * FROM sys.dm_change_feed_log_scan_sessions;
如果
sys.dm_change_feed_log_scan_sessions
DMV 没有显示任何处理增量更改的进展,请执行以下 T-SQL 查询,检查是否报告了任何问题:SELECT * FROM sys.dm_change_feed_errors;
如果没有报告任何问题,请执行以下存储过程来查看镜像的 Azure SQL 托管实例的当前配置。 请确认它已正确启用。
EXEC sp_help_change_feed;
table_name
和state
是此处需要注意的关键列。 除4
之外的任何值都表明存在潜在问题。 (表格不应长时间处于非4
状态。)如果复制仍然不起作用,请验证正确的 SAMI 对象是否具有相应权限(请参阅 SPN 权限)。
- 在 Fabric 门户中,选择镜像数据库项上的“...”省略号选项。
- 选择“管理权限”选项。
- 确认 Azure SQL 托管实例名称显示具有读取、写入权限。
- 确保显示的 AppId 与 Azure SQL 托管实例的 SAMI ID 匹配。
如需排除故障,请联系支持人员。
托管的标识
需要启用 Azure SQL 托管实例的系统分配的托管标识 (SAMI),并且必须是主要标识。
启用后,如果 SAMI 设置状态为关闭,或者一开始为启用,然后为禁用,然后又为启用,则从 Azure SQL 托管实例到 Fabric OneLake 的镜像会失败。 重新启用后的 SAMI 与禁用前的标识不同。 因此,需要授予新的 SAMI 权限才能访问 Fabric 工作区。
SAMI 必须是主要标识。 使用以下 SQL 验证 SAMI 是否为主要标识:SELECT * FROM sys.dm_server_managed_identities;
不支持用户分配的托管标识 (UAMI)。 如果添加 UAMI,它将成为主要标识,并取代作为主要标识的 SAMI。 这会导致复制失败。 若要解决问题,请执行以下操作:
- 移除所有 UAMIS。 确认已启用 SAMI。
SPN 权限
不应从 Fabric 镜像的数据库项中删除 Azure SQL 托管实例服务主体名称 (SPN) 参与者权限。
如果意外删除 SPN 权限,镜像 Azure SQL 托管实例将无法按预期工作。 无法从源数据库镜像新数据。
如果删除 Azure SQL 托管实例 SPN 权限或权限未正确设置,请使用以下步骤。
- 在镜像的托管实例项上选择省略号选项 (
...
),将 SPN 添加为用户。 - 选择“管理权限”选项。
- 进入 Azure SQL 托管实例公共终结点。 提供读取和写入权限。