通过


教程:从Azure SQL Managed Instance配置Microsoft Fabric镜像数据库

Fabric 中的镜像是一种基于云的企业级零 ETL SaaS 技术。 本节将教您如何创建镜像 Azure SQL 托管实例数据库,即 OneLake 中 Azure SQL 托管实例中选中的某个数据库的只读连续复制副本。

先决条件

启用 Azure SQL 托管实例的系统分配托管身份 (SAMI)

必须启用Azure SQL Managed Instance的系统分配托管标识(SAMI),并且必须是主要标识,才能将数据发布到 Fabric OneLake。

  1. 若要配置或验证 SAMI 是否已启用,请在Azure门户中转到SQL Managed Instance。 在“资源”菜单中的“安全性”下,选择“标识”
  2. “系统分配的托管标识”下,将“状态”设置为“开启”
  3. SAMI 必须是主要身份标识。 使用以下 T-SQL 查询验证 SAMI 是否为主要标识:SELECT * FROM sys.dm_server_managed_identities;

Fabric 的数据库主体

接下来,需要创建 Fabric 服务连接到Azure SQL Managed Instance的方法。

可以使用登录名和映射的数据库用户来完成此操作。 为了安全性,遵循最低特权原则,您应仅授予要镜像的数据库中的 CONTROL DATABASE 权限。

使用登录用户和映射的数据库用户

  1. 使用 SQL Server Management Studio(SSMS)MSSQL 扩展来连接到 Azure SQL 托管实例中的Visual Studio Code。 连接到 master 数据库。

  2. 创建服务器登录名并分配相应的权限。

    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;
    
  3. 将查询范围切换到要镜像的数据库。 替换数据库 <mirroring_source_database> 的名称并运行以下 T-SQL:

    USE [<mirroring_source_database>];
    
  4. 创建连接到登录名的数据库用户。 将新数据库用户的名称替换为 <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数据库

  1. 打开 Fabric 门户
  2. 使用现有的工作区,或创建新的工作区。
  3. 导航到“创建”窗格。 选择“创建”图标。
  4. 滚动到 Data Warehouse 部分,然后选择 Mirrored Azure SQL Managed Instance

连接到 Azure SQL 托管实例

若要启用镜像,需要从 Fabric 连接到 Azure SQL Managed Instance,以在 SQL Managed Instance 和 Fabric 之间建立连接。 以下步骤指导你完成创建与Azure SQL Managed Instance的连接的过程:

  1. 新源下,选择Azure SQL Managed Instance。 或者,从 OneLake 目录中选择现有的Azure SQL Managed Instance连接。
    1. 不能使用类型为“SQL Server”的现有Azure SQL Managed Instance连接(泛型连接类型)。 只有连接类型为“SQL Managed Instance”的连接才支持Azure SQL Managed Instance数据的镜像。
  2. 如果选择了 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 和客户端密码。
  3. 选择 连接

启动镜像过程

  1. “配置镜像”屏幕允许你镜像数据库中的所有数据,这是默认选项。

    • 镜像所有数据意味着,镜像启动后创建的任何新表都会被镜像。

    • 也可选择只镜像某些对象。 禁用“镜像所有数据”选项,然后从数据库中选择单独的表。

    • 如果表根本无法镜像,它们将显示错误图标和相关说明文本。 同样,如果表格只能在有限制的情况下进行镜像,将会显示一个警告图标,并附上相关说明文本。

    在本教程中,我们将选择“镜像所有数据”选项。

  2. 在下一个屏幕上,为目标项指定一个名称,然后选择“ 创建镜像数据库”。 现在,请等待一两分钟,让 Fabric 为你预配所有内容。

  3. 2-5 分钟后,选择“ 监视复制 ”以查看状态。

  4. 几分钟后,状态应变为“正在运行”,这表明正在同步表。

    如果未看到表和相应的复制状态,请等待几秒钟,然后刷新面板。

  5. 表的初始复制完成后, “上次刷新 ”列中会显示一个日期。

  6. 现在,您的数据已准备就绪,整个 Fabric 平台提供了各种可用的分析场景。

重要

源数据库中建立的任何精细安全性必须在Microsoft Fabric的镜像数据库中重新配置。

监视结构镜像

配置镜像后,将定向到“镜像状态”页。 可以在此处监视复制的当前状态。

以下是复制状态列表:

  • 用于整体数据库层面监视:

    • 正在运行 – 当前的复制过程正在将快照和更改数据引入 OneLake。
    • 运行时出现警告:复制正在运行,出现暂时性错误
    • 停止中/停止 - 复制已停止。
    • 错误 – 无法恢复的复制中的严重错误。
  • 对于表级监视:

    • 运行 – 表中的数据已成功复制到仓库。
    • 程序运行警告 - 表中数据复制时出现非致命错误警告
    • 停止/已停止 - 复制过程已中断
    • 错误 – 该表的复制中出现严重错误。

如果初始同步已完成,则表名称旁边会显示 上次完成 的时间戳。 此时间戳指示 Fabric 上次检查表是否有更改的时间。

另请注意 “行复制 ”列。 它计算已为表复制的所有行。 每次复制行时,都会再次对其进行计数。 这意味着,例如,在源端插入主键为1的行时,“复制的行”的计数将增加一。 如果您使用相同的主键更新该行,并再次将其复制到 Fabric,那么行计数将增加一,即使复制的仍然是同一行。 Fabric 对行上发生的所有复制进行计数,包括插入、删除、更新。

“监视复制”屏幕还会显示表镜像过程中出现的任何错误和警告。 如果表具有不支持的列类型,或者如果整个表不受支持(例如,内存或列存储索引中),则会在此屏幕上显示有关限制的通知。 有关复制状态的详细信息,请参阅监控 Fabric 镜像数据库的复制