本文介绍镜像 Azure SQL 数据库的故障排除步骤。
有关为 Fabric SQL 数据库自动配置的镜像进行故障排除,请参阅排查来自 Fabric SQL 数据库(预览版)的镜像问题。
Fabric 容量或工作区的更改
参阅对 Fabric 容量做出更改以了解详细信息。
此外,请特别注意以下 Azure SQL 数据库:
原因 | Result | 建议的解决方案 |
---|---|---|
已删除工作区 | 镜像会自动停止,并禁用 Azure SQL 数据库中的更改源 | 如果镜像在 Azure SQL 数据库上仍然处于活动状态,请在 Azure SQL 数据库上执行以下存储过程:exec sp_change_feed_disable_db; 。 |
任何其他资源错误 | 镜像已禁用 | 为了确保计算资源不受影响并最大程度地减少对 Azure SQL 数据库的影响,将对任何永久性资源错误禁用镜像。 |
“用户可以使用 Fabric 外部的应用访问 OneLake 中存储的数据”设置已禁用 | “复制器 - 表无法达到复制状态” | 启用租户设置 用户可以使用 Fabric外部的应用访问 OneLake 中存储的数据。 |
用于故障排除的 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
之外的任何值都表明存在潜在问题。如果复制仍然不起作用,请验证是否为具有权限的正确 SAMI 对象。
- 在 Fabric 门户中,选择镜像数据库项上的“...”省略号选项。
- 选择“管理权限”选项。
- 确认 Azure SQL 逻辑服务器名称显示具有读取、写入权限。
- 确保显示的 AppId 与 Azure SQL 数据库逻辑服务器的 SAMI ID 匹配。
如需排除故障,请联系支持人员。
托管的标识
需要启用 Azure SQL 逻辑服务器的系统分配托管标识 (SAMI),并且必须是主要标识。 有关详细信息,请参阅创建 Azure SQL 数据库服务器。 在 Azure 门户中的“标识”页的“安全”下,启用其中“资源”菜单内的 SAMI。
启用后,如果 SAMI 设置状态为关闭,或者一开始为启用,然后为禁用,然后又为启用,则从 Azure SQL 数据库到 Fabric OneLake 的镜像会失败。
SAMI 必须是主要标识。 使用以下查询验证 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 数据库逻辑服务器的名称。 提供读取和写入权限。