通过


排查 SQL Server 中的 Fabric 镜像数据库问题

本文介绍在 SQL Server 实例中镜像数据库的故障排除步骤。

对 Fabric 容量或工作区的更改

Fabric容量的变更了解更多。

此外,请特别注意 SQL Server 的以下原因:

原因 结果 建议的解决方法
工作区已删除 SQL Server 镜像会自动停止,并禁用更改跟踪 如果镜像在 SQL Server 上仍然处于活动状态,请在 SQL Server 上执行以下存储过程: exec sp_change_feed_disable_db;
任何其他资源错误 镜像已禁用 为了确保计算资源不受影响并最大程度地减少对 SQL Server 的影响,将对任何持久性资源错误禁用镜像。
“用户可以使用 Fabric 外部的应用访问 OneLake 中存储的数据”设置已禁用 复制器 - 表无法达到复制状态 启用租户设置 用户可以使用 Fabric 外部的应用访问 OneLake 中存储的数据

查询和常见解决方案疑难解答

SQL Server 2025 和 SQL Server 2025 之前的版本中,故障排除步骤和诊断查询可能有所不同。

SQL Server 2025 中的Fabric镜像疑难解答

SQL Server 2025 中故障排除的查询

如果在 SQL Server 2025 中遇到镜像问题,请使用动态管理视图(DMV)和存储过程执行以下数据库级别检查以验证配置。

  1. 执行以下查询,检查更改是否正确传递:

    SELECT * FROM sys.dm_change_feed_log_scan_sessions;
    
  2. sys.dm_change_feed_log_scan_sessions如果 DMV 在处理增量更改时未显示任何进度,请执行以下 T-SQL 查询来检查是否报告了任何问题:

    SELECT * FROM sys.dm_change_feed_errors;
    
  3. 如果没有报告任何问题,请执行以下存储过程来查看镜像 SQL Server 的当前配置。 确认它已正确启用。

    EXEC sp_help_change_feed;
    

    要在此处查找的键列是 table_namestate。 除了 4 之外的任何值都表示潜在问题。

  4. 查看 Fabric 镜像数据库疑难解答

  5. 如果需要故障排除,请联系支持人员

扩展事件会话

以下扩展事件会话可用于对 SQL Server 2025 实例上的 Fabric 镜像进行故障排除。 建议仅创建此会话以进行故障排除或支持。

CREATE EVENT SESSION [sqlmirroringxesession] ON SERVER  
ADD EVENT sqlserver.synapse_link_addfilesnapshotendentry,  
ADD EVENT sqlserver.synapse_link_db_enable,  
ADD EVENT sqlserver.synapse_link_end_data_snapshot,  
ADD EVENT sqlserver.synapse_link_error,  
ADD EVENT sqlserver.synapse_link_info,  
ADD EVENT sqlserver.synapse_link_library,  
ADD EVENT sqlserver.synapse_link_perf,  
ADD EVENT sqlserver.synapse_link_scheduler,  
ADD EVENT sqlserver.synapse_link_start_data_snapshot,  
ADD EVENT sqlserver.synapse_link_totalsnapshotcount,  
ADD EVENT sqlserver.synapse_link_trace  
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)  
GO
 
ALTER EVENT SESSION [sqlmirroringxesession] ON SERVER
STATE = start;
GO

事务日志已满,因为复制日志重用等待

如果结构镜像源 SQL Server 数据库事务日志已满,因为 REPLICATION 日志重用等待,请考虑 启用自动执行的功能

对 SQL Server 中的源镜像数据库的性能影响

在 SQL Server 2025 中,可以创建资源调控器池来管理和限制 SQL Server 上的 Fabric 镜像的工作负荷。 可以使用资源调控器来管理数据库引擎资源消耗,并强制实施用户工作负荷的策略。 资源调控器允许你保留或限制各种服务器资源,包括用户查询工作负载可以使用的 CPU、内存和物理 I/O 量。 这样,就可以保护主要业务工作负荷免受 Fabric Mirroring 更改源数据收集的压力。

无法向源服务器授予所需的权限

创建新的镜像数据库 SQL Server 时,创建可能会失败并出现以下错误:

Unable to grant required permission to the source server. PowerBI user with prefix undefined not found.

PowerBI 用户的屏幕截图,其中前缀未定义,找不到错误。

若要解决此问题:

  1. 在 Fabric 门户中,取消对话框并删除工作区中的镜像数据库项。

  2. 打开 Azure 门户

    1. 转到 Azure Arc(经典版)和 SQL 服务器。 然后选择 已启用 Arc 的 SQL Server 实例 ,然后选择 Microsoft Entra ID 选项卡。
    2. 取消选中“ 使用主托管标识 ”框,然后选择“ 保存”。
  3. 在 SQL Server 实例中重复运行以下查询,直到它不返回任何行:

    SELECT * FROM sys.dm_server_managed_identities
    
  4. 返回到 Azure 门户。 转到 已启用 Arc 的 SQL Server 实例,然后选择 “Microsoft Entra ID ”选项卡。

  5. 选中 “使用主托管标识 ”并选择“ 保存”。

    SQL Server 实例中“使用主托管标识”选项的屏幕截图。

  6. 运行以下查询(与之前相同),直到它 只返回一行

    SELECT * FROM sys.dm_server_managed_identities
    
  7. 在 Fabric 门户中,配置 SQL Server 镜像以连接到 Fabric,现在应当可以成功完成,并且不会出现错误。