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