通过


Azure SQL 数据库中Microsoft Fabric 镜像数据库的限制

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

有关故障排除,请参阅:

数据库级别的限制

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

  • 如果数据库已启用变更数据捕获(CDC)、用于 SQL 的 Azure Synapse Link 或数据库已在另一 Fabric 工作区中镜像,则无法镜像 Azure SQL 数据库。

  • 可以镜像到 Fabric 中的表的最大数目是 1,000 个表。 当前无法复制超出 1000 限制的任何表。

    • 如果在配置镜像时选择“ 镜像所有数据 ”,则当所有表都按字母顺序排序时,要镜像的表是前 1,000 个表,然后是表名称。 字母列表底部的剩余一组表没有被复制。
    • 如果取消选择 “镜像所有数据 ”并选择单个表,则无法选择超过 1,000 个表。
  • .dacpac 部署到 Azure SQL 数据库的部署需要发布属性 /p:DoNotAlterReplicatedObjects=False 才能对任何镜像表进行修改。 如需详细了解部署 .dacpac 时可以使用的发布设置,请参阅 SqlPackage 发布文档

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

源数据库中的权限

  • 支持行级别安全性,但权限目前不会传播到 Fabric OneLake 中的复制数据。
  • 对象级权限(例如向某些列授予的权限)当前不会传播到 Fabric OneLake 中的复制数据。
  • 动态数据掩码设置当前不会传播到 Fabric OneLake 中的复制数据。
  • 若要成功配置 Azure SQL 数据库的镜像,必须向用于连接到源 Azure SQL 数据库的主体授予 ALTER ANY EXTERNAL MIRROR 的权限,该权限包含在更高级别的权限(如 CONTROL 权限或 db_owner 角色)中。

网络和连接安全性

  • 需要启用 Azure SQL 逻辑服务器的系统分配托管标识(SAMI)或用户分配的托管标识(UAMI),并且必须是主标识。

    注释

    对用户分配的托管标识(UAMI)的支持目前处于预览阶段。

  • 不应从 Fabric 镜像数据库项中删除 Azure SQL 数据库服务主体名称(SPN)参与者权限。

  • 不支持跨 Microsoft Entra 租户进行镜像,其中 Azure SQL 数据库和 Fabric 工作区位于单独的租户中。 

  • Microsoft Azure SQL 数据库中定义的 Purview 信息保护/敏感度标签不会级联并镜像到 Fabric OneLake。

表级别

  • 对于不支持的类型,具有主键或聚集索引(如果不存在主键)的表不能被镜像 - 计算列用户定义的类型几何地理数据层次结构 IDSQL 变体时间戳datetime2(7)datetimeoffset(7)time(7)

  • Delta Lake 仅支持六位精度。

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

  • 如果表中的一个或多个列是大型二进制对象 (LOB) 类型,并且大小 > 1 MB,则列数据在 Fabric OneLake 中将被截断为 1 MB 大小。

  • 使用以下任一功能的源表不能进行镜像。

    • 时态历史记录表和账本历史记录表
    • 始终加密 (Always Encrypted)
    • 内存中表
    • Graph
    • 外部表
  • 如果为 SQL 数据库源表启用了镜像操作,则不允许对其执行以下表级数据定义语言 (DDL) 操作。

    • 切换分区

      • 更改主键
  • 发生 DDL 更改时,将重启已更改表的完整数据快照,并重新分配数据。

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

    • 目前,在镜像表时,不能将列更改为 向量json 数据类型。
  • 从 2025 年 4 月开始,即使表没有主键,也可以进行镜像。

    • 2025 年 4 月之前没有主键的表不符合镜像条件。 2025 年 4 月之后,即使已选择 “自动镜像未来表”,也不会自动将没有主键的现有表添加到镜像中。
      • 选择 “自动镜像未来表”时,若要启动没有主键的镜像表:
        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
    • rowversion/时间戳
    • sql_variant
    • 用户定义类型 (UDT)
    • geometry
    • geography
  • 镜像支持复制名称中包含空格或特殊字符的列(如 ,;{}()\n\t=)。 对于启用此功能之前复制下的表,需要更新镜像数据库设置或重启镜像以包括这些列。 从 Delta 列映射支持中了解详细信息。

仓库限制

  • 源架构层次结构将复制到镜像数据库。 对于在启用此功能之前创建的镜像数据库,源架构被平面化,并且架构名称被编码到表名中。 如果要使用架构重新组织表,请重新创建镜像数据库。 从 复制源架构层次结构了解详细信息。

镜像项限制

  • 用户必须是工作区管理员/成员角色的成员,才能创建 SQL 数据库镜像。 
  • 停止镜像会完全禁用镜像。 
  • 启动镜像后,会重新设定所有表的种子值,实际上就是从头开始。 

SQL 分析终结点限制

支持的区域

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

后续步骤