本页列出了来自 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 托管实例的主体授予 CONTROL 或 db_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_variant、timestamp/rowversion、datetime2(7)、datetimeoffset(7)、time(7),其中
7精度为 7 位。Delta Lake 仅支持六位精度。
- 精度为 7 位数的小数秒、SQL 类型为 datetime2 的列在 Fabric OneLake 的 Delta 文件中没有具有相同精度的相应数据类型。 如果镜像此类型的列,则会发生精度损失,并且将剪裁小数秒的第七位数。
- datetimeoffset(7) 数据类型在 Fabric OneLake 的 Delta 文件中没有具有相同精度的相应数据类型。 如果镜像此类型的列,则会发生精度损失(时区和第七位时间小数丢失)。
目前不支持聚集列存储索引。
无法镜像对不受支持的类型使用聚集索引的 表 - 计算列、 用户定义的类型、 几何图形、 地理、 层次结构 ID、 SQL 变体、 时间戳、 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 月之后,即使选择了 “自动镜像未来表”,没有主键的现有表也不会自动添加到镜像中。
- 选择自动镜像未来表时,若要开始对没有主键的表进行镜像:
停止复制并启动复制,这将重新分配所有表,并检测符合镜像条件的新表。 这是建议的步骤。
解决方法是在源数据库中创建新表。 这会触发对源数据库表的盘点,检测以前未镜像的表,包括没有主键的表。 例如,以下脚本创建一个名为
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。 镜像不支持以下数据类型:
- 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 区域可用性。