虚拟端点是读写和只读侦听器端点,无论 Azure Database for PostgreSQL flexible server 的当前角色是什么,这些端点都始终保持一致。 此一致性意味着在执行提升到主服务器操作后,无需更新应用程序的连接字符串。 端点会在角色更改后自动指向正确的服务器。
在主服务器的上下文中,执行涉及虚拟终结点的所有操作,无论是添加、编辑还是删除。 在Azure portal中,可以在主服务器页下管理这些终结点。 同样,在使用 CLI、REST API 等工具或其他实用工具时,命令和操作会针对用于终结点管理的主服务器执行。
虚拟终结点提供两种不同的连接点类型:
编写器终结点(可读/写):此终结点始终指向当前主服务器。 它确保写入操作定向到正确的服务器,而不管用户触发的任何提升操作。 无法更改此终结点以指向副本。
只读终结点:可以将此终结点配置为指向只读副本或主服务器。 但是,它一次只能以一个服务器为目标。 它不支持多个服务器之间的负载均衡。 可以随时调整此终结点的目标服务器(无论是在提升之前还是之后)。
注释
每个主服务器及其副本只能创建一个编写器和一个只读终结点。
虚拟端点和提升行为
触发提升操作时,这些终结点的行为方式可预测。 以下部分介绍了这些终结点如何对 “提升到主服务器” 和 “提升到独立服务器 ”方案做出反应。
| 虚拟终结点 | 原始目标 | 触发“提升到主服务器”时的行为 | 触发“提升到独立服务器”时的行为 |
|---|---|---|---|
| 编写器终结点 | 主要 | 指向新的主服务器。 | 保持不变。 |
| 只读终结点 | Replica | 指向新副本(之前的主服务器)。 | 指向主服务器。 |
| 只读终结点 | 主要 | 不支持。 | 保持不变。 |
触发“提升到主服务器”时的行为
- 编写器终结点:此终结点将更新为指向新的主服务器,反映角色切换。
-
只读端点
- 如果只读终结点指向副本:在执行提升操作后,只读终结点将指向新的副本(原主实例)。
- 如果只读端点指向主服务器:若要使提升操作正常进行,只读端点必须指向计划提升的服务器。 不支持指向主服务器。 在升级之前,必须将终结点重新配置为指向副本。
触发“提升到独立服务器并从复制中删除”时的行为
- 编写器终结点:此终结点保持不变。 它继续将流量定向到服务器,并拥有主要角色。
-
只读端点
- 如果只读端点指向副本:只读端点会从已提升的副本重新指向主服务器。
- 如果只读终结点指向主终结点:只读终结点保持不变,则继续指向同一服务器。
在时间点恢复(PITR)或快照还原期间,使用虚拟端点以保持主机名一致
本部分介绍如何在 Azure Database for PostgreSQL 灵活服务器中使用虚拟终结点,以便在时间点恢复(PITR)或快照还原期间保持一致的主机名,从而确保应用程序连接字符串保持不变。 执行以下步骤:
将虚拟终结点添加到主服务器:
- 在Azure门户中浏览到主服务器。
- 转到“ 复制 ”选项卡。在 “虚拟终结点”下,选择“ 添加虚拟终结点”。
- 使用一致的主机名配置虚拟终结点,例如
mydb-virtual-endpoint.postgres.database.chinacloudapi.cn。 - 保存配置。
- 更新应用程序以在连接字符串中使用此虚拟终结点。
执行时间点还原(PITR)或快照还原:
- 启动恢复:
- 转到主服务器的“备份”部分。
- 选择适当的还原选项(
PITR或snapshot)并指定所需的时间点。
- 更新虚拟终结点:
- 创建新服务器后,返回到旧的主服务器 复制 选项卡。
- 从原始主服务器中移除虚拟终结点。 原始主服务器必须处于
succeeded状态,才能删除虚拟端点。 - 将相同的虚拟终结点添加到新创建的服务器。
- 启动恢复:
验证:
- 确保应用程序使用虚拟终结点进行连接,并在恢复后验证数据库操作。
相关内容
- 使用 Terraform 为只读副本创建虚拟终结点
- Azure Database for PostgreSQL中读取副本。
- Azure Database for PostgreSQL 中的 地理复制。
- 在 Azure Database for PostgreSQL 中提升只读副本。
- 创建读取副本。
- 使用专用网络跨Azure区域和虚拟网络进行复制。