Fabric 中的镜像是一种基于云的企业级零 ETL SaaS 技术。 本部分介绍如何创建镜像的 Azure SQL 托管实例数据库,该数据库表示从 OneLake 中的 Azure SQL 托管实例中连续复制所选数据库的只读副本。
先决条件
- 创建或使用现有的 Azure SQL 托管实例。
- 源 Azure SQL 托管实例的更新策略需要配置为“始终最新”或“SQL Server 2025”。
- 源 Azure SQL 托管实例可以是单个 SQL 托管实例,也可以是属于实例池的 SQL 托管实例。
- 如果没有 Azure SQL 托管实例, 可以创建新的 SQL 托管实例。 如果需要,可以使用 Azure SQL 托管实例免费套餐 。
- 需要 Fabric 的现有容量。 如果没有, 请启动 Fabric 试用版。
- Fabric 容量需要处于活动状态并正在运行。 暂停或删除的容量会影响镜像,不会复制任何数据。
- 需要 Fabric 租户设置。 请确保启用以下两个 Fabric 租户设置:
- 从 Fabric 门户创建镜像数据库时,需要在工作区中具有成员或管理员角色。 在创建期间,Azure SQL 托管实例的托管标识会自动授予对镜像数据库的“读取和写入”权限。 具有参与者角色的用户没有完成此步骤所需的重新共享权限。
- Fabric 访问 Azure SQL 托管实例的网络要求:
- 如果 Azure SQL 托管实例不可公开访问, 请创建虚拟网络数据网关 或 本地数据网关 来镜像数据。 确保 Azure 虚拟网络或网关服务器的网络可以通过 专用终结点连接到 Azure SQL 托管实例。
- 如果要在没有数据网关的情况下连接到 Azure SQL 托管实例的公共终结点,则需要允许来自 Power BI 和数据工厂服务标记或网络安全组中 Azure 云服务标记的入站流量。 从 Azure SQL 托管实例中配置公共终结点了解详细信息。
启用 Azure SQL 托管实例的系统分配托管标识(SAMI)
必须启用 Azure SQL 托管实例的系统分配托管标识(SAMI),并且必须是主标识,才能将数据发布到 Fabric OneLake。
- 若要配置或验证是否已启用 SAMI,请转到 Azure 门户中的 SQL 托管实例。 在“资源”菜单中的“安全性”下,选择“标识”。
- 然后在“系统分配的托管标识”下,将“状态”设置为“开启”。
- SAMI 必须是主要标识。 使用以下 T-SQL 查询验证 SAMI 是否为主要标识:
SELECT * FROM sys.dm_server_managed_identities;
Fabric 的数据库主体
接下来,需要创建 Fabric 服务连接到 Azure SQL 托管实例的方法。
可以使用登录名和映射的数据库用户来完成此操作。 遵循最低特权原则的安全性,应仅授予要镜像的数据库中的 CONTROL DATABASE 权限。
使用登录名和映射的数据库用户
使用 SQL Server Management Studio(SSMS) 或 Azure Data Studio 连接到 Azure SQL 托管实例。 连接到
master数据库。创建服务器登录名并分配相应的权限。
Fabric 登录所需的权限包括:
服务器角色的成员身份
##MS_ServerStateReader##用户数据库中的以下权限:
- SELECT
- 更改任何外部镜像
创建经过 SQL 身份验证的登录名。 可以选择此登录名的任何名称,将其替换为以下脚本。
<fabric_login>提供自己的强密码。 在master数据库中运行以下 T-SQL 脚本:
CREATE LOGIN <fabric_login> WITH PASSWORD = '<strong password>'; ALTER SERVER ROLE [##MS_ServerStateReader##] ADD MEMBER <fabric_login>;- 或者,从现有帐户创建经过身份验证的 entra ID Microsoft登录名。 在
master数据库中运行以下 T-SQL 脚本:
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER; ALTER SERVER ROLE [##MS_ServerStateReader##] ADD MEMBER [bob@contoso.com];将查询范围切换到要镜像的数据库。 替换数据库
<mirroring_source_database>的名称并运行以下 T-SQL:USE [<mirroring_source_database>];创建连接到登录名的数据库用户。 将新数据库用户的名称替换为以下目的
<fabric_user>:CREATE USER <fabric_user> FOR LOGIN <fabric_login>; GRANT SELECT, ALTER ANY EXTERNAL MIRROR TO <fabric_user>;或者,对于 Microsoft Entra 登录名,
CREATE USER [bob@contoso.com] FOR LOGIN [bob@contoso.com]; GRANT SELECT, ALTER ANY EXTERNAL MIRROR TO [bob@contoso.com];
创建镜像的 Azure SQL 托管实例数据库
- 打开 Fabric 门户。
- 使用现有的工作区,或创建新的工作区。
- 导航到“创建”窗格。 选择“创建”图标。
- 滚动到 “数据仓库 ”部分,然后选择“ 镜像的 Azure SQL 托管实例”。
连接到 Azure SQL 托管实例
若要启用镜像,需要从 Fabric 连接到 Azure SQL 托管实例,以启动 SQL 托管实例与 Fabric 之间的连接。 以下步骤指导你完成创建与 Azure SQL 托管实例的连接的过程:
- 在 “新建源”下,选择 “Azure SQL 托管实例”。 或者,从 OneLake 目录中选择现有的 Azure SQL 托管实例连接。
- 不能将现有的 Azure SQL 托管实例连接与类型“SQL Server”(泛型连接类型)配合使用。 只有连接类型为“SQL 托管实例”的连接才支持 Azure SQL 托管实例数据的镜像。
- 如果选择了 “新建连接”,请输入 Azure SQL 托管实例的连接详细信息。 需要连接到特定数据库,无法为整个 SQL 托管实例及其所有数据库设置镜像。
-
服务器:可以通过导航到 Azure 门户中的“Azure SQL 托管实例网络”页(在“安全”菜单下)并查看“公共终结点”字段来查找服务器名称。 例如,
<managed_instance_name>.public.<dns_zone>.database.windows.net,3342。 - 数据库:输入要镜像的数据库的名称。
- 连接:创建新连接。
- 连接名称:会自动提供名称。 可以根据需要更改它,以便将来查找此 SQL 托管实例数据库连接。
- 数据网关:选择默认(无)或根据方案设置的虚拟网络数据网关/本地数据网关的名称。
-
身份验证类型:
- 基本(SQL 身份验证):指定用户名和密码。
- 组织帐户 (Microsoft Entra ID)
- 服务主体:指定服务主体的租户 ID、客户端 ID 和客户端密码。
-
服务器:可以通过导航到 Azure 门户中的“Azure SQL 托管实例网络”页(在“安全”菜单下)并查看“公共终结点”字段来查找服务器名称。 例如,
- 选择 连接。
启动镜像过程
“配置镜像”屏幕允许你镜像数据库中的所有数据,这是默认选项。
镜像所有数据意味着,镜像启动后创建的任何新表都会被镜像。
也可选择只镜像某些对象。 禁用“镜像所有数据”选项,然后从数据库中选择单独的表。
如果表根本无法镜像,它们将显示错误图标和相关说明文本。 同样,如果表只能镜像限制,则会显示带有相关说明文本的警告图标。
在本教程中,我们将选择“镜像所有数据”选项。
在下一个屏幕上,为目标项指定一个名称,然后选择“ 创建镜像数据库”。 现在,请等待一两分钟,让 Fabric 为你预配所有内容。
2-5 分钟后,选择“ 监视复制 ”以查看状态。
几分钟后,状态应变为“正在运行”,这表明正在同步表。
如果未看到表和相应的复制状态,请等待几秒钟,然后刷新面板。
表的初始复制完成后, “上次刷新 ”列中会显示一个日期。
现在,你的数据已启动并运行,整个 Fabric 中具有各种可用的分析场景。
重要
在源数据库中建立的任何粒度的安全性,都必须在 Microsoft Fabric 中的镜像数据库中重新配置。
监视结构镜像
配置镜像后,将定向到“镜像状态”页。 可以在此处监视复制的当前状态。
以下是复制状态:
对于整体数据库级别监视:
- 正在运行 – 复制当前正在运行,将快照和更改数据引入 OneLake。
- 运行时出现警告:复制正在运行,出现暂时性错误
- 停止/停止 - 复制已停止。
- 错误 – 无法恢复的复制中的严重错误。
对于表级别监视:
- 运行 – 表中的数据已成功复制到仓库。
- 出现警告 - 出现非致命错误警告,并复制表中的数据
- 停止/停止 - 复制已停止
- 错误 – 该表的复制中出现严重错误。
如果初始同步已完成,则表名称旁边会显示 上次完成 的时间戳。 此时间戳指示 Fabric 上次检查表是否有更改的时间。
另请注意 “行复制 ”列。 它计算已为表复制的所有行。 每次复制行时,都会再次对其进行计数。 这意味着,例如,在源上插入主键 =1 的行将“复制的行”计数增加一个。 如果使用同一主键更新行,请再次复制到 Fabric,并且行计数也会增加一个,即使该行是再次复制的同一行。 Fabric 对行上发生的所有复制进行计数,包括插入、删除、更新。
“监视器复制”屏幕还反映了镜像表的任何错误和警告。 如果表具有不支持的列类型,或者如果整个表不受支持(例如,内存或列存储索引中),则会在此屏幕上显示有关限制的通知。 有关复制状态的详细信息和细节,请参阅监视 Fabric 镜像数据库复制。