本页面列出了来自 Azure SQL 托管实例的 Microsoft Fabric 镜像数据库当前存在的限制。 此页面的内容可能随时发生变化。
有关故障排除,请参阅:
功能可用性
如果当前将 Azure SQL 托管实例部署到除美国东部 2、美国西部 2、美国中部和美国西部以外的任何 Azure,可以配置该实例进行镜像。
该功能的可用性还取决于 Fabric 区域。 有关 Fabric 区域支持的完整列表,请参阅支持镜像的 Fabric 区域。
数据库级别的限制
Azure SQL 托管实例的镜像仅适用于更新策略设置为“始终最新”的实例。 SQL Server 2022 版本的 SQL 托管实例不支持镜像。
镜像不支持异地灾难恢复设置。
只有可写的主数据库支持 Azure SQL 托管实例的 Fabric 镜像。
如果 Azure SQL 托管实例数据库已启用变更数据捕获 (CDC)、事务复制,或者数据库已在其他 Fabric 工作区中镜像,则无法镜像该数据库。
可以镜像到 Fabric 中的表不超过 500 个。 当前,超出 500 个表的限制后,无法复制任何表。
- 如果在配置镜像时选择“镜像所有数据”,将依次根据架构名称和表名称按字母顺序对所有表进行排序,要镜像的表为前 500 个表。 按字母顺序排序的列表底部的剩余表不会被镜像。
- 如果取消选择“镜像所有数据”,并选择单独的表,则无法选择超过 500 个表。
镜像的数据库不支持数据库复制/移动功能。 如果移动或复制启用了镜像的数据库,则复制将报告镜像错误状态。
如果 SQL 托管实例数据库设置为使用 Azure SQL 托管实例链接功能,则不支持只读副本作为 Fabric 镜像的源。
如果数据库配置为进行镜像,然后被重命名,则“监视镜像”功能将停止工作。 将数据库重命名为设置镜像时的名称将解决此问题。
如果为数据库启用了 延迟事务持续性 ,则无法镜像 Azure SQL 托管实例数据库。
源数据库中的权限
- 支持行级别安全性,但权限目前不会传播到 Fabric OneLake 中的复制数据。
- 对象级权限(例如向某些列授予的权限)当前不会传播到 Fabric OneLake 中的复制数据。
- 动态数据掩码设置当前不会从源数据库传播到 Fabric OneLake。
- 为了成功配置 Azure SQL 托管实例的镜像,需要向用于连接到源 SQL 托管实例的主体授予 CONTROL 或 db_owner 权限。 建议仅在镜像的数据库上授予此权限 - 不要在整个服务器级别上执行此操作。
网络和连接安全性
- 如果 Azure SQL 托管实例不可公开访问, 请创建虚拟网络数据网关 或 本地数据网关 来镜像数据。 确保 Azure 虚拟网络或网关服务器的网络可以通过 专用终结点连接到 Azure SQL 托管实例。
- 需要启用 Azure SQL 托管实例的系统分配的托管标识 (SAMI),并且必须是主要标识。
- 不得从 Fabric 镜像数据库项中移除 Azure SQL 托管实例服务主体名称 (SPN) 参与者权限。
- 不支持用户分配的托管标识 (UAMI)。
- 如果 Azure SQL 托管实例和 Fabric 工作区位于不同的租户中,则不支持跨 Microsoft Entra 租户进行镜像。
- 在 Azure SQL 托管实例中定义的 Microsoft Purview 信息保护/敏感度标签不会镜像到 Fabric OneLake。
表级别
- 无法对不具有定义的主键的表进行镜像处理。
- 如果表的主键是数据类型 sql_variant、timestamp rowversion 中的一种,则无法镜像该表/
- 如果主键为以下数据类型之一,则无法对表进行镜像处理:datetime2(7)、datetimeoffset(7)、time(7),其中 表示七位精度
7
。 - Delta Lake 仅支持六位精度。
- 精度为 7 位数的小数秒、SQL 类型为 datetime2 的列在 Fabric OneLake 的 Delta 文件中没有具有相同精度的相应数据类型。 如果镜像此类型的列,则会发生精度损失,并且将剪裁小数秒的第七位数。
- datetimeoffset(7) 数据类型在 Fabric OneLake 的 Delta 文件中没有具有相同精度的相应数据类型。 如果镜像此类型的列,则会发生精度损失(时区和第七位时间小数丢失)。
- 聚集列存储索引当前不受支持。
- 如果表中的一个或多个列是大型二进制对象 (LOB) 类型,并且大小 > 1 MB,则列数据在 Fabric OneLake 中将被截断为 1 MB 大小。 配置最大文本重放大小服务器配置选项,以允许超过 65,536 字节(如果想要允许大型插入)。
- 无法镜像使用了以下任何功能的源表:
- 时态历史记录表和账本历史记录表
- 始终加密 (Always Encrypted)
- 内存中表
- 图表
- 外部表
- 如果源表启用了 Azure SQL 托管实例到 Microsoft Fabric 的镜像,则不允许对这些表执行以下表级数据定义语言 (DDL) 操作。
- 切换/分割/合并分区
- 更改主键
- 有 DDL 更改时,会为更改的表重新启动完整的数据快照,并将整个表数据重设定种子到 Fabric OneLake。
- 目前,如果表具有 json 数据类型,则无法镜像该表。
- 目前,在镜像表时,不能将列更改为 json 数据类型。
- 镜像不支持视图和具体化视图。
- 从 2025 年 5 月开始,即使没有主键,也可以镜像表。
- 2025 年 5 月之前没有主键的表不符合镜像条件。 2025 年 5 月之后,即使选择了 “自动镜像未来表”,没有主键的现有表也不会自动添加到镜像中。
- 选择“自动镜像将来的表”后,若要开始镜像没有主键的表,请执行以下操作:
停止复制并启动复制,此操作将重新传输所有表,并检测符合镜像条件的新表。 这是建议的步骤。
解决方法是在源数据库中创建新表。 此操作会触发和列出源数据库的表,并检测以前未镜像的表,包括没有主键的表。 例如,以下脚本会创建一个名为
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;
- 若要在未选择“自动镜像将来的表”时开始镜像没有主键的表,请在镜像设置中将这些表添加到所选表列表中。
- 选择“自动镜像将来的表”后,若要开始镜像没有主键的表,请执行以下操作:
- 2025 年 5 月之前没有主键的表不符合镜像条件。 2025 年 5 月之后,即使选择了 “自动镜像未来表”,没有主键的现有表也不会自动添加到镜像中。
列级别
- 如果源表包含计算列,则无法将这些列镜像到 Fabric OneLake。
- 如果源表包含以下数据类型之一的列,则无法将这些列镜像到 Fabric OneLake。 镜像不支持以下数据类型:
- 图像
- 文本/ntext
- xml
- json
- 行版本/时间戳
- sql_variant
- 用户定义类型 (UDT)
- 几何学
- 地理
- 镜像支持复制名称中包含空格或特殊字符的列(如
,
;
{
}
(
)
\n
\t
=
)。 对于启用此功能之前复制下的表,需要更新镜像数据库设置或重启镜像以包括这些列。 从 Delta 列映射支持中了解详细信息。 - 如果源表启用了 Azure SQL 托管实例到 Microsoft Fabric 的镜像,则不支持对这些表执行以下列级数据定义语言 (DDL) 操作:
- 更改列
- 重命名列 (
sp_rename
)
镜像项限制
- 用户必须是工作区管理员/成员角色的成员,才能创建 SQL 托管实例镜像。
- 停止镜像会完全禁用镜像。
- 启动镜像后,会重新设定所有表的种子值,实际上就是从头开始。
- 如果 Fabric 容量停止后再重启,镜像将停止工作,需要手动重启。 不会显示警告/错误消息来指示镜像停止工作。
SQL 分析终结点限制
- SQL 分析终结点与湖屋 SQL 分析终结点相同。 它也是一种只读体验。 请参阅 SQL 分析终结点的限制。
- 源架构层次结构将复制到镜像数据库。 对于在启用此功能之前创建的镜像数据库,源架构被平面化,并且架构名称被编码到表名中。 如果要使用架构重新组织表,请重新创建镜像数据库。 从 复制源架构层次结构了解详细信息。
支持的区域
以下是支持数据库镜像和开放镜像的 Fabric 区域:
美洲:
- 巴西南部
- 加拿大中部
- 加拿大东部
- 美国中部
- 美国东部
- 美国东部 2
- 美国中北部
- 美国中南部
- 美国西部
- 西部美国 2
- 美国西部 3
亚太:
- 东亚
- 东南亚
- 澳大利亚东部
- 澳大利亚东南部
- 印度中部
- 印度南部
- 日本东部
- 韩国中部
欧洲、中东和非洲:
- 北欧
- 西欧
- 法国中部
- 德国中西部
- 意大利北部
- 挪威东部
- 波兰中部
- 南非北部
- 瑞典中部
- 瑞士北部
- 瑞士西部
- 阿拉伯联合酋长国北部
- 英国南部
- 英国西部