Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
适用于: Azure Database for PostgreSQL 灵活服务器
本文介绍如何通过 Azure 门户、CLI 和 REST API 在 Azure Database for PostgreSQL 灵活服务器中创建和管理只读副本。 若要详细了解只读副本,请参阅概述。
创建 Azure Database for PostgreSQL 灵活服务器 作为主服务器。
Nota
在为持久性大量写入密集型主工作负载部署只读副本时,复制滞后时间可能会持续增加,并且可能永远无法赶上主工作负载。 这也可能会增加主服务器的存储用量,因为仅当副本上收到 WAL 文件时才会删除该文件。
在为 Azure Database for PostgreSQL 灵活服务器设置只读副本之前,请确保将主服务器配置为满足必要的先决条件。 主服务器上的特定设置可能会影响创建副本的能力。
存储自动增长:主服务器及其只读副本上的存储自动增长设置必须遵守特定准则,以确保一致性并防止复制中断。 请参阅存储自动增长了解详细规则和设置。
高级 SSD v2:当前版本不支持使用高级 SSD v2 存储为主服务器创建只读副本。 如果工作负载需要只读副本,请为主服务器选择不同的存储选项。
在 Azure 门户中,选择要用于副本的 Azure Database for PostgreSQL 灵活服务器实例。
在概述对话框中,记下 PostgreSQL 版本(例如
15.4
)。 此外,请注意主服务器部署到的区域。在服务器边栏的“设置”下,选择“计算 + 存储”。
查看并记下以下设置:
计算层、处理器、大小(例如
Standard_D4ds_v4
)。存储
- 存储大小(例如
128GB
) - 自动增长
- 存储大小(例如
高可用性
- 启用/禁用
- 可用性区域设置
备份设置
- 保留期
- 冗余选项
在“设置”下选择“网络” 。
查看网络设置。
若要创建只读副本,请遵循以下步骤:
选择要用作主服务器的现有 Azure Database for PostgreSQL 灵活服务器实例。
在服务器边栏中的“设置”下,选择“复制”。
选择“创建副本”。
在“基本信息”窗体中输入以下信息。
选择“审阅 + 创建”以确认创建该副本,或者如果要添加、删除或修改任何防火墙规则,请选择“下一步: 网络”。
将其余字段保留默认值,然后选择页面底部的“查看 + 创建”按钮,或者转到下一个窗体以添加标记或更改数据加密方法。
查看最终确认窗口中的信息。 准备就绪后,选择“创建”。 将创建新的部署。
在部署期间,你将看到主服务器处于
Updating
状态。
设置副本服务器名称。
Sugerencia
使用资源命名约定是云采用框架 (CAF) 的最佳做法,它会支持你轻松确定要连接到或管理的实例,以及实例的驻留位置。
选择与主要位置不同的地点,但请注意,可以选择同一区域。
Sugerencia
若要了解更多信息关于在哪些区域可以创建副本,请访问副本概念文章。
将计算和存储设置为从主副本上记录的内容。 如果显示的计算不匹配,请选择“配置服务器”并选择相应的一个。
Nota
如果选择的计算大小小于主服务器,则部署将失败。 另请注意,计算大小在其他区域中可能不适用。
Importante
为了避免在提升副本期间出现问题,请先更改副本上的以下服务器参数,然后再在主服务器上应用它们:max_connections
、max_prepared_transactions
、max_locks_per_transaction
、max_wal_senders
、max_worker_processes
。
Nota
涉及虚拟终结点的所有操作,例如添加、编辑和删除,都在主服务器的上下文中执行。
在 Azure 门户中,选择主服务器。
在服务器边栏中的“设置”下,选择“复制”。
选择“创建终结点”。
在对话框中,为终结点键入有意义的名称。 请注意正在生成的 DNS 终结点。
选择“创建”。
Nota
如果不创建虚拟终结点,在尝试提升副本时会收到错误消息。
若要列出虚拟终结点,请执行以下步骤:
修改使用 Azure Database for PostgreSQL 灵活服务器实例的所有应用程序,以使用新的虚拟终结点(例如:corp-pg-001.writer.postgres.database.chinacloudapi.cn
和 corp-pg-001.reader.postgres.database.chinacloudapi.cn
)。
准备好所有必要组件后,即可执行将副本提升到主副本的操作。
若要通过 Azure 门户提升副本,请执行以下步骤:
在 Azure 门户中,选择主 Azure Database for PostgreSQL 灵活服务器实例。
在服务器菜单中的“设置”下,选择“复制”。
在“服务器”下,选择副本的“提升”图标。
在对话框中,确保操作为“提升到主服务器”。
对于“数据同步”,确保已选择“已计划 - 提升前同步数据”。
选择“提升”以开始该过程。 完成后,角色将反转:副本变为主副本,主副本则转变为副本的角色。
Nota
要升级的副本须具有分配的读取者虚拟终结点,否则提升时会显示错误。
若要执行某些操作,请重启应用程序,然后尝试这些操作。 应用程序应无缝运行,而无需修改虚拟终结点连接字符串或 DNS 条目。 此次让应用程序保持运行状态。
重复相同的操作,将原始服务器提升为主副本。
在 Azure 门户中,选择副本。
在服务器边栏的“设置”下,选择“复制”
在“服务器”下,选择副本的“提升”图标。
在对话框中,确保操作为“提升到主服务器”。
对于“数据同步”,确保已选择“已计划 - 提升前同步数据”。
选择“提升”,该过程将开始。 完成后,角色将反转:副本变为主副本,主副本则转变为副本的角色。
同样,切换到其中一个使用中的应用程序。 等待主服务器和副本状态更改为 Updating
,然后尝试执行一些操作。 在副本提升期间,应用程序可能会遇到临时的与终结点的连接问题:
在单独的区域中创建次读副本,以修改读者虚拟终结点,从而允许创建与第一个副本独立的服务器。
在 Azure 门户中,选择主 Azure Database for PostgreSQL 灵活服务器实例。
在服务器边栏中的“设置”下,选择“复制”。
选择“创建副本”。
向“基本信息”窗体输入第三区域的信息(例如
chinanorth3
和corp-pg-chinanorth-001
)选择“审阅 + 创建”以确认创建该副本,或者如果要添加、删除或修改任何防火墙规则,请选择“下一步: 网络”。
验证防火墙设置。 请注意主要设置如何被自动复制。
保留剩余的默认值,然后选择页面底部的“审阅 + 创建”按钮,或转到以下表单以配置安全性或添加标记。
查看最终确认窗口中的信息。 准备就绪后,选择“创建”。 将创建新的部署。
在部署期间,你将看到主服务器处于
Updating
状态。
在 Azure 门户中,选择主 Azure Database for PostgreSQL 灵活服务器实例。
在服务器边栏中的“设置”下,选择“复制”。
选择省略号,然后选择“编辑”。
在对话框中,选择新的次要副本。
选择“保存”。 读取者终结点现在指向次要副本,提升操作现在绑定到此副本。
在切换到副本之外,还可以中断副本的复制,使其成为其独立服务器。
在 Azure 门户中,选择 Azure Database for PostgreSQL 灵活服务器主服务器。
在服务器边栏中服务器菜单上的“设置”下,选择“复制”。
在“服务器”下,选择要提升为独立服务器的副本的“提升”图标。
在对话框中,确保操作为“提升为独立服务器并从复制中删除。这不会影响主服务器”。
对于“数据同步”,确保已选择“已计划 - 提升前同步数据”。
选择“提升”,该过程将开始。 完成后,服务器不再是主服务器的副本。
Nota
将副本提升到独立服务器后,将无法将其添加回复制集。
在 Azure 门户中,选择主服务器。
在服务器边栏中的“设置”下,选择“复制”。
在页面顶部找到
Virtual endpoints
分区。 导航到终结点名称旁边的三个点(菜单选项),展开它,然后选择Delete
。将显示确认删除对话框。 它会发出警告:“此操作会删除虚拟终结点
virtualendpointName
。 任何使用这些域连接的客户端都可能会失去访问权限。”确认知晓影响并单击“删除”以确认。
删除只读副本的方法与删除独立 Azure Database for PostgreSQL 灵活服务器实例的方法类似。
在 Azure 门户中,打开只读副本的“概述”页。 选择“删除”。
也可以在“复制”窗口中遵循以下步骤删除只读副本:
只有在删除所有只读副本后,才能删除主服务器。 若要删除副本,请按照删除副本部分中的说明操作,然后继续执行提供的步骤。
若要在 Azure 门户中删除服务器,请遵循以下步骤:
可以使用两个指标来监视只读副本。
仅适用于主副本。
“物理复制最大滞后”指标显示主服务器与滞后最大的副本之间的滞后(以字节为单位)。
“只读副本滞后时间”指标显示自从在副本上最后一次执行重放事务以来所经历的时间。 如果主数据库上未发生事务,则指标反映此滞后时间。 例如,如果主服务器上没有发生事务,且上一个事务在 5 秒前重播,则“只读副本滞后时间”会显示 5 秒的延迟。