Fabric 中的镜像是一种基于云的企业级零 ETL SaaS 技术。 本部分介绍如何创建镜像的 Azure Database for PostgreSQL 灵活服务器,该服务器在 OneLake 中创建 PostgreSQL 数据的只读连续复制副本。
先决条件
- 创建或使用现有的 Azure Database for PostgreSQL 灵活服务器。
- 如果没有 Azure Database for PostgreSQL 灵活服务器, 请创建新的灵活服务器。
- 在教程中,我们建议使用现有数据库之一的副本或任何可从备份中快速恢复的现有测试或开发数据库。 如果要使用现有备份中的数据库,请参阅 从 Azure Database for PostgreSQL 灵活服务器中的备份还原数据库。
- 需要 Fabric 的现有容量。 如果没有, 请启动 Fabric 试用版。
- Fabric 容量需要处于活动状态并正在运行。 暂停或删除的容量也会停止镜像,不会复制任何数据。
- 需要 Fabric 租户设置。 请确保启用以下两个 Fabric 租户设置:
- 从 Fabric 门户创建镜像数据库时,需要在工作区中具有成员或管理员角色。 在创建期间,Azure Database for PostgreSQL 的托管标识会自动授予对镜像数据库的“读取和写入”权限。 具有参与者角色的用户没有完成此步骤所需的重新共享权限。
- 如果灵活服务器不可公开访问,并且不允许 Azure 服务 连接到它,则可以 创建虚拟网络数据网关 来镜像数据。 确保 Azure 虚拟网络或网关计算机的网络可以通过专用终结点连接到 Azure Database for PostgreSQL 灵活服务器,或者防火墙规则允许。
- 结构镜像不能在只读副本上或只读副本所在的主副本上配置。
准备 Azure Database for PostgreSQL
Azure Database for PostgreSQL 灵活服务器中的镜像基于逻辑复制,需要在连接到数据之前配置一些特定的先决条件。
重要
为了指导用户启用这些先决条件,我们在 Azure 门户中创建了一个特定的 Fabric 镜像页, 可自动执行所有这些作。 有关详细信息,请参阅 PostgreSQL 灵活服务器的 Fabric 镜像概念。
- 必须启用 System-Assigned 托管标识(SAMI)。
- 预
wal_level写日志(WAL)的服务器参数必须设置为 逻辑。 - 扩展(azure_cdc)是必需的,必须列入允许列表并预加载(需要重启)。
- 对于
max_worker_processes源服务器中的每个镜像数据库,服务器参数必须增加 3。
结构镜像的数据库角色
接下来,需要为 Fabric 服务提供或创建 PostgreSQL 角色,以便连接到 Azure Database for PostgreSQL 灵活服务器。
重要
在当前预览版中,不支持使用 Microsoft Entra ID 用户和服务主体连接到 Azure Database for PostgreSQL 灵活服务器中的源数据库。 使用基本身份验证(PostgreSQL 身份验证)。
为此,可以指定用于连接到源系统 的数据库角色 。
使用数据库角色
使用 pgAdmin 或 Azure Data Studio 连接到 Azure Database for PostgreSQL 灵活服务器。 应与作为角色
azure_pg_admin成员的主体进行连接。创建名为 的
fabric_userPostgreSQL 角色。 可以选择此角色的任何名称。 提供自己的强密码。 授予数据库中 Fabric 镜像所需的权限。 运行以下 SQL 脚本,授予名为fabric_user新角色的CREATEDB、CREATEROLE、LOGIN和azure_cdc_adminREPLICATION权限。-- create a new user to connect from Fabric CREATE ROLE fabric_user CREATEDB CREATEROLE LOGIN REPLICATION PASSWORD '<strong password>'; -- grant role for replication management to the new user GRANT azure_cdc_admin TO fabric_user; -- grant create permission on the database to mirror to the new user GRANT CREATE ON DATABASE <database_to_mirror> TO fabric_user;创建的数据库用户还需要
owner是要在镜像数据库中复制的表。 这意味着表是由该用户创建的,或者这些表的所有权已使用ALTER TABLE <table name here> OWNER TO fabric_user;更改。- 将所有权切换到新用户时,可能需要先授予该用户对
public架构的所有权限。 有关用户帐户管理的详细信息,请参阅 Azure Database for PostgreSQL 用户管理 文档、 适用于数据库角色和特权的 PostgreSQL 产品文档、 GRANT 语法和 特权。
- 将所有权切换到新用户时,可能需要先授予该用户对
重要
缺少前面的安全配置步骤之一将导致 Fabric 门户中的后续镜像作失败并显示一 Internal error 条消息。
创建镜像的 Azure Database for PostgreSQL 灵活服务器
- 打开 Fabric 门户。
- 使用现有的工作区,或创建新的工作区。
- 导航到“ 创建 ”窗格,或选择“ 新建项 ”按钮。 选择“创建”图标。
- 滚动到“数据仓库”部分,然后选择“镜像的 Azure Database for PostgreSQL”(预览版)。
连接到 Azure Database for PostgreSQL 灵活服务器
以下步骤指导你完成创建与 Azure Database for PostgreSQL 灵活服务器的连接的过程:
- 在“新建源”下,选择“Azure Database for PostgreSQL”(预览版)。 或者,从 OneLake 中心选择现有的 Azure Database for PostgreSQL 灵活服务器连接。
- 如果选择了 “新建连接”,请输入 Azure Database for PostgreSQL 灵活服务器的连接详细信息。
-
服务器:可以通过在 Azure 门户中导航到 Azure Database for PostgreSQL 灵活服务器概述页来查找服务器名称。 例如,
<server-name>.postgres.database.azure.com。 - 数据库:输入 Azure Database for PostgreSQL 灵活服务器的名称。
- 连接:创建新连接。
- 连接名称:会自动提供名称。 无法更改它。
- 数据网关:选择可用的 VNET 数据网关 ,将 Azure Database for PostgreSQL 灵活服务器连接到 VNET 集成或专用终结点。
-
身份验证类型 (当前预览版中仅提供 Basic):
- 基本(PostgreSQL 身份验证)
- 选中“ 使用加密连接 ”复选框, 此连接可与未选中的本地数据网关和 VNET 数据网关一起使用 。
-
服务器:可以通过在 Azure 门户中导航到 Azure Database for PostgreSQL 灵活服务器概述页来查找服务器名称。 例如,
- 选择 连接。
启动镜像过程
-
“配置镜像”屏幕允许你镜像数据库中的所有数据,这是默认选项。
- 镜像所有数据意味着,镜像启动后创建的任何新表都会被镜像。
- 也可选择只镜像某些对象。 禁用“镜像所有数据”选项,然后从数据库中选择单独的表。 在本教程中,我们将选择“镜像所有数据”选项。
- 选择“镜像数据库”。 镜像开始。
- 等待 2-5 分钟。 然后,选择“监视复制”以查看状态。
- 几分钟后,状态应变为“正在运行”,这表明正在同步表。 如果未看到表和相应的复制状态,请等待几秒钟,然后刷新面板。
- 完成表的初始复制后,“上次刷新”列中会显示一个日期。
- 现在,你的数据已启动并运行,整个 Fabric 中具有各种可用的分析场景。
重要
必须在 Microsoft Fabric 的镜像数据库中重新配置在源数据库中建立的任何精细安全性设置。 请参阅 Microsoft Fabric 中的 SQL 精细权限。
监视结构镜像
配置镜像后,将定向到“镜像状态”页。 可以在此处监视复制的当前状态。 有关复制状态的详细信息和细节,请参阅监视 Fabric 镜像数据库复制。