Azure SQL 托管实例中Microsoft Fabric 镜像数据库的限制

本页列出了来自 Azure SQL 托管实例 的 Microsoft Fabric 镜像数据库 中的当前限制。 此页面的内容可能随时发生变化。

有关故障排除,请参阅:

功能可用性

如果将 Azure SQL 托管实例部署到任何 Azure 区域,则可以配置用于镜像的 Azure SQL 托管实例, 但当前这些区域除外 :美国东部 2;美国西部 2;美国中部;美国西部。

功能可用性还取决于 Fabric 区域。 有关 Fabric 区域支持的完整列表,请参阅 支持镜像的 Fabric 区域

数据库级别的限制

  • Azure SQL 托管实例上的镜像仅适用于其 更新策略 设置为 “始终最新”的实例。 SQL Server 2022 版本的 SQL 托管实例不支持镜像。

  • 镜像不支持异地灾难恢复设置。

  • Azure SQL 托管实例的构造镜像仅在 可写主 数据库上受支持。

  • 如果数据库已启用变更数据捕获 (CDC)、事务复制或数据库已在另一 Fabric 工作区中镜像,则无法镜像 Azure SQL 托管实例数据库。

  • 在 Fabric 中可以镜像的表格数量最多为 500 个。 当前无法复制超出 500 限制的任何表。

    • 如果在配置镜像时选择“镜像所有数据”,将依次根据架构名称和表名称按字母顺序对所有表进行排序,要镜像的表为前 500 个表。 字母列表底部的剩余一组表没有被复制。
    • 如果取消选择“镜像所有数据”,并选择单独的表,则无法选择超过 500 个表。
  • 镜像的数据库不支持数据库复制/移动功能。 如果移动或复制启用了镜像的数据库,则复制将报告镜像错误状态。

  • 如果 SQL 托管实例数据库设置为使用 Azure SQL 托管实例链接功能,则无法支持将只读副本作为 Fabric 镜像的来源。

  • 如果数据库配置为镜像,然后重命名, 监视器镜像 功能将停止工作。 将数据库重命名为设置镜像时的名称将解决此问题。

  • 如果为数据库启用了 延迟事务持续性 ,则无法镜像 Azure SQL 托管实例数据库。

源数据库中的权限

  • 支持行级别安全性,但权限目前不会传播到 Fabric OneLake 中的复制数据。
  • 对象级权限(例如向某些列授予权限)当前不会传播到 Fabric OneLake 中的复制数据。
  • 动态数据掩码 设置当前不会从源数据库传播到 Fabric OneLake。
  • 若要成功为 Azure SQL 托管实例配置镜像,需要向用于连接到源 SQL 托管实例的主体授予 CONTROLdb_owner 权限。 建议仅在镜像的数据库上授予此权限 - 不要在整个服务器级别上执行此作。

网络和连接安全性

  • 如果 Azure SQL 托管实例不可公开访问, 请创建虚拟网络数据网关本地数据网关 来镜像数据。 确保 Azure 虚拟网络或网关服务器的网络可以通过 专用终结点连接到 Azure SQL 托管实例。
  • 需要启用系统分配的 Azure SQL 托管实例托管标识(SAMI),并且必须是主要标识。
  • 不应从 Fabric 镜像数据库项中删除 Azure SQL 托管实例服务主体名称(SPN)参与者权限。
  • 不支持用户分配的托管标识(UAMI)。
  • 不支持在 Azure SQL 托管实例和 Fabric 工作区位于不同的租户时,跨 Microsoft Entra 租户进行镜像。 
  • Microsoft Azure SQL 托管实例中定义的 Purview 信息保护/敏感度标签不会镜像到 Fabric OneLake。

表级别

  • 如果主键是数据类型之一,则无法镜像表:sql_varianttimestamp/rowversion、datetime2(7)、datetimeoffset(7)time(7),其中7精度为 7 位。

  • Delta Lake 仅支持六位精度。

    • 精度为 7 位数的小数秒、SQL 类型为 datetime2 的列在 Fabric OneLake 的 Delta 文件中没有具有相同精度的相应数据类型。 如果镜像此类型的列,则会发生精度损失,并且将剪裁小数秒的第七位数。
    • datetimeoffset(7) 数据类型在 Fabric OneLake 的 Delta 文件中没有具有相同精度的相应数据类型。 如果镜像此类型的列,则会发生精度损失(时区和第七位时间小数丢失)。
  • 目前不支持聚集列存储索引。

  • 无法镜像对不受支持的类型使用聚集索引的 表 - 计算列用户定义的类型几何图形地理层次结构 IDSQL 变体时间戳datetime2(7)datetimeoffset(7) 或 time(7)。

  • 如果表中的一个或多个列的类型是大小超过 1 MB 的大型二进制对象(LOB),那么在 Fabric OneLake 中,列数据会被截断到 1 MB 的大小。 配置最大文本复制大小 服务器配置选项,以便在需要允许大型插入时支持超过 65,536 字节的数据。

  • 不能镜像具有下列任何功能的源表:

    • 时态历史记录表和账本历史记录表
    • 始终加密 (Always Encrypted)
    • 内存中表
    • Graph
    • 外部表
  • 启用 Microsoft Fabric 的 SQL 托管实例镜像时,禁止在源表上进行表级数据定义语言(DDL)操作。

    • 切换/拆分/合并分区
    • 更改主键
  • 发生 DDL 更改时,将重启已更改表的完整数据快照,并将整个表数据重新分配到 Fabric OneLake。

  • 目前,如果表具有 json 数据类型,则无法镜像表。

    • 目前,在镜像表时,无法将列更改为 json 数据类型。
  • 镜像不支持视图和具体化视图。

  • 从 2025 年 5 月开始,即使没有主键,表也可以被镜像。

    • 2025 年 5 月之前没有主键的表不符合镜像条件。 2025 年 5 月之后,即使选择了 “自动镜像未来表”,没有主键的现有表也不会自动添加到镜像中。
      • 选择自动镜像未来表时,若要开始对没有主键的表进行镜像:
        1. 停止复制并启动复制,这将重新分配所有表,并检测符合镜像条件的新表。 这是建议的步骤。

        2. 解决方法是在源数据库中创建新表。 这会触发对源数据库表的盘点,检测以前未镜像的表,包括没有主键的表。 例如,以下脚本创建一个名为 test_20250401的表,然后在镜像表 test_20250401 后将其删除。 此脚本假定命名 dbo.test_20250401 的表尚不存在。

          --This script assumes that a table named dbo.test_20250401 does not already exist.
          CREATE TABLE dbo.test (ID int not null);
          

          在它出现在镜像表列表中后,您还应该看到那些没有主键的表。 然后,可以删除该表 test

          DROP TABLE dbo.test_20250401;
          
      • 若要在未选择 自动镜像将来的表时启动无主键的镜像表,请在镜像设置中将表添加到所选表列表中。

列级别

  • 如果源表包含计算列,则这些列无法镜像到 Fabric OneLake。 
  • 如果源表包含具有以下数据类型之一的列,则这些列无法镜像到 Fabric OneLake。 镜像不支持以下数据类型:
    • image
    • 文本/ntext
    • xml
    • json
    • rowversion/时间戳
    • sql_variant
    • 用户定义类型 (UDT)
    • geometry
    • geography
  • 镜像支持复制名称中包含空格或特殊字符的列(如 ,;{}()\n\t=)。 对于启用此功能之前复制下的表,需要更新镜像数据库设置或重启镜像以包括这些列。 从 Delta 列映射支持中了解详细信息。
  • 在启用 SQL 托管实例镜像到 Microsoft Fabric 时,源表不支持以下列级数据定义语言(DDL)操作:
    • 更改列
    • 重命名列 (sp_rename

镜像项限制

  • 用户必须是工作区的管理员/成员角色的成员才能创建 SQL 托管实例镜像。 
  • 停止镜像会完全禁用镜像。 
  • 启动镜像后,会重新设定所有表的种子值,实际上就是从头开始。 
  • 如果 Fabric 容量被停止后再重启,镜像功能将会停止,需要手动重新启动。 不会显示警告/错误消息,指示镜像停止工作。

SQL 分析终结点限制

  • SQL 分析终结点与 Lakehouse SQL 分析终结点相同。 这是相同的只读体验。 请参阅 SQL 分析终结点的限制
  • 源架构层次结构将复制到镜像数据库。 对于在启用此功能之前创建的镜像数据库,源架构被平面化,并且架构名称被编码到表名中。 如果要使用架构重新组织表,请重新创建镜像数据库。 从 复制源架构层次结构了解详细信息。

支持的区域

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

后续步骤