对结构镜像数据库进行故障排除

本文介绍 Microsoft Fabric 镜像数据库的常见场景、解决方法和替代方案。 对于每个数据源,还查看特定的故障排除、常见问题(常见问题解答)和限制。

Area Reference
Troubleshooting Azure Cosmos DBAzure Database for PostgreSQLAzure SQL 数据库Azure SQL 托管实例SnowflakeSQL Server、以及 Fabric SQL 数据库 提供镜像
局限性 Mirroring for Azure Cosmos DBAzure Database for PostgreSQLAzure DatabricksAzure SQL 数据库Azure SQL 托管实例SnowflakeGoogle BigQueryOracleSAPSQL ServerFabric SQL 数据库
FAQ Azure Cosmos DBAzure Database for PostgreSQLAzure DatabricksAzure SQL 数据库Azure SQL 托管实例Google BigQuerySQL ServerFabric SQL 数据库的镜像

对 Fabric 容量的更改

Scenario Description
构造容量已暂停 镜像已停止,无法列出或访问镜像数据库项。 恢复或重新分配工作区的容量。
恢复构造容量 从暂停状态恢复容量时,镜像数据库状态显示为 “已暂停”。 因此,源中所做的更改不会复制到 OneLake。
若要恢复镜像,请转到 Fabric 门户中的镜像数据库,选择 “恢复复制”。 镜像从暂停位置继续。
请注意,如果容量长时间保持暂停状态,镜像可能无法从停止点恢复,并且将从头开始重新分配数据。 这是因为长时间暂停数据库镜像可能会导致源数据库事务日志的使用量增长,并阻止日志截断。 为了最大程度地减少对数据库的影响,如果使用的日志空间接近满,则恢复镜像时,将启动数据库重新分配以释放保留的日志空间。
构造容量缩放 镜像继续。 如果缩减容量,请注意,镜像数据的 OneLake 存储会根据容量大小释放到限制,因此缩减容量可能会产生额外的存储费用。 从 镜像成本中了解详细信息。
构造容量受限制 等待重载状态结束或更新容量。 还原容量后,镜像将继续。 从 可从重载情况中恢复的作了解详细信息。
Fabric 试用容量已过期 镜像已停止。 若要保留镜像数据库,请购买 Fabric 容量。 从 Fabric 试用容量中了解详细信息。

数据似乎不会复制

如果观察到镜像数据出现延迟,请检查以下内容:

  • 镜像状态: 在镜像数据库的 Fabric 门户监视页 中,检查镜像数据库和特定表的状态,以及指示 Fabric 上次从源刷新镜像表的时间的“上次完成”列。 空表示表尚未镜像。

    如果启用工作区监视,还可以通过查询ReplicatorBatchLatency镜像数据库作日志中的值来检查镜像执行延迟。

    对于 Azure SQL 数据库Azure SQL 托管实例Azure Database for PostgreSQL 等源类型,请按照特定说明检查源数据库配置和状态。

  • OneLake 中的数据: 镜像会以 Delta Lake 表格式将数据连续复制到 OneLake。 若要验证数据是否正确降落在 OneLake 中,可以将镜像表的快捷方式创建到 Lakehouse 中,然后使用 Spark 查询生成笔记本来查询数据。 了解有关 使用笔记本进行探索的详细信息。

  • SQL 分析终结点中的数据: 可以使用镜像数据的快捷方式通过镜像数据库的 SQL 分析终结点或 Lakehouse 查询镜像数据。 出现延迟时,请验证 OneLake 中的镜像状态和数据,如前所述。 如果数据显示在 OneLake 中,但不显示在 SQL 分析终结点中,则可能是由 SQL 分析终结点中的 元数据同步 延迟引起的。

    可以手动强制刷新自动元数据扫描。 在 SQL 分析终结点的页面上,选择“ 刷新 ”按钮,如下图所示。 等待一段时间,然后再次查询数据以检查。

    Fabric 门户中的屏幕截图,其中显示了如何强制刷新 SQL 分析终结点元数据扫描。

停止复制

选择 “停止复制”时,OneLake 文件保持不变,但增量复制会停止。 可以通过选择 “开始复制”来随时重启复制。 在重置复制状态、源数据库更改后或作为故障排除工具时,可能需要停止/启动复制。

复制源架构层次结构

从各种类型的源数据库镜像数据时,源架构层次结构将保留在镜像数据库中。 它可确保数据在整个不同的服务中保持一致组织,使你能够使用 SQL 分析终结点、Spark Notebook、语义模型和其他对数据的引用中的相同逻辑使用它。

对于在启用此功能之前创建的镜像数据库,可以看到源架构在镜像数据库中平展,架构名称编码为表名。 如果要使用架构重新组织表,请重新创建镜像数据库。

如果使用 API 创建/更新镜像数据库,请为属性 defaultSchema设置值,该值指示是否从源数据库复制架构层次结构。 请参阅 Microsoft Fabric 镜像公共 REST API 中的定义示例。

增量列映射支持

镜像支持将名称(例如,;{}()\n\t=)中的空格或特殊字符的列从源数据库复制到镜像数据库。 在后台,镜像会将数据写入 OneLake 并启用 Delta 列映射。

对于在启用此功能之前已在复制中的表,若要在名称中包含具有特殊字符的列,需要通过删除和读取这些表来更新镜像数据库设置,或者停止并重启镜像数据库。

获取镜像数据库的所有权

目前,镜像数据库不支持所有权更改。 如果镜像数据库因项目所有者离开组织或不再有效而停止工作,则需要重新创建镜像数据库。

支持的区域

数据库镜像和打开的镜像在所有Microsoft Fabric 区域中都可用。 有关详细信息,请参阅 Fabric 区域可用性

Troubleshoot

本部分包含常规镜像故障排除步骤。

无法连接到源数据库

  1. 检查连接详细信息是否正确、服务器名称、数据库名称、用户名和密码。
  2. 检查服务器是否不在防火墙或专用虚拟网络后面。 打开相应的防火墙端口。
    • 某些镜像源支持虚拟网络数据网关或本地数据网关,请参阅源的文档以获取此功能的支持。

未复制任何视图

目前不支持视图。 仅支持复制常规表。

未复制任何表

  1. 检查监视状态以检查表的状态。 有关详细信息,请参阅 Monitor Fabric 镜像数据库复制
  2. 选择“ 配置复制 ”按钮。 查看表列表中是否存在这些表,或每个表详细信息上是否存在任何警报。

目标表中缺少列

  1. 选择“ 配置复制 ”按钮。
  2. 如果未复制任何列,请选择表详细信息旁边的“警报”图标。

我的列中的某些数据似乎将被截断

SQL 分析终结点支持高达 16 MB 的 varchar(max)。

  • 限制 16 MB 适用于镜像数据库中在 2025 年 11 月 18 日之后创建的表,但每个镜像项类型可以有不同的和较低的限制。 例如,镜像 SQL Server 最多支持 1 MB,Cosmos DB 最多支持 2 MB。 请参阅下表。
  • 在 2025 年 11 月 18 日之前创建的现有表仅支持 varchar(8000),需要重新创建以采用新数据类型并支持超过 8 KB 的数据。
镜像化平台组件 varchar(max) 限制
镜像 SQL Server、Azure SQL 数据库、Azure SQL 托管实例 1 MB
Fabric 中的 SQL 数据库 1 MB
镜像化 Azure Cosmos DB 2 MB
Fabric 中的 Cosmos DB 2 MB

在源数据库中删除镜像表/架构时,不会删除该表/架构

表级别:

  • 选择镜像选择性表列表并删除源表时,镜像表将保持不变,并且监视中会出现错误“源表不存在”。 如果不再想要复制此表,请更新镜像数据库配置并将其删除,则镜像表将被删除。
  • 选择镜像所有数据并删除源表时,也会删除镜像表。

架构级别:在源数据库中删除架构时,仍会将 SQL Analytics 终结点中的架构视为空架构。

无法更改源数据库

不支持更改源数据库。 创建新的镜像数据库。

限制错误消息

这些常见错误消息具有说明和缓解措施:

错误信息 原因 缓解
“表计数可能超出限制,可能缺少一些表。 最多有 500 个表。 在源数据库中,删除或筛选表。 如果新表是第 500 个表,则无需缓解。
“复制受到限制,预计在 YYYY-MM-DDTHH:MM:ss 继续。 每个镜像数据库每天最多捕获 1 TB 的更改数据。 等待限制结束。