配置只读副本
公司可以使用其数据库的只读副本全局缩放性能。 当组织在全球分发客户,并让数百万用户尝试访问其数据时,副本非常有用。 一旦到位,他们还可以处理区域灾难恢复。
贵公司已成长为国际知名的自行车销售商。 CIO 已要求你的部门提高在线商店对全球用户的响应能力。 你知道,提高性能的快速简单方法是在每个地理位置放置数据库的只读副本。
在本单元中,你将了解如何轻松创建和管理存储在 Azure Database for MySQL/PostgreSQL 中的数据的只读副本。
如何使用读取复制
使用读取复制将数据从 Azure Database for MySQL/PostgreSQL 的一个实例(称为 主)复制到最多五个副本。 使用复制将负载分散到服务器,以便读取繁重的工作负荷。 复制是单向的,每个副本都是只读的。 复制以异步方式运行,因此数据在主副本上更改的时间与每个副本中显示的时间点之间存在滞后时间。
副本可以位于主服务器的不同区域中。 使用副本将数据放置在需要它的客户端附近,以减少查询延迟。 跨区域复制还提供用于处理区域灾难恢复的机制。
注释
跨区域复制在基本性能层中不可用。
每个副本都是自己的 Azure Database for MySQL/PostgreSQL 实例,但配置为只读。 如果与主服务器的连接丢失或主服务器被删除,则每个副本将成为独立的读写服务器。 在这种情况下,副本不再彼此同步,因此它们保存的数据可能会开始分叉。
注释
如果使用 Azure Database for MySQL,只读副本仅在“常规用途”和“内存优化”定价层中可用。 此外,只读副本在 Azure Database for PostgreSQL 灵活服务器中不可用。
创建副本
将副本添加到服务器的最简单方法是通过 Azure 门户中服务器的 复制 页。 在此页上,选择 + 添加副本。
系统会提示输入服务器的名称和位置。 除此之外,副本的其他详细信息(包括定价层)设置为与主服务器使用的相同。 创建副本后,可以修改该服务器的任何设置,包括调整定价层。 但是,请确保每个副本有足够的资源可用于处理与接收和存储复制数据关联的工作负荷。
注释
如果使用“常规用途”或“内存优化”定价层,则还必须启用复制支持。 选择 启用复制支持,在 复制 页上执行此作。 服务器将重新启动,然后才能继续。
添加副本后,该副本将显示在 复制 页上。 根据主数据库的大小和数据库中的数据量,每个副本的部署和同步可能需要很长时间。
通过在 复制 页上选择副本来重新配置和调整副本大小。
如果想要使用 Azure CLI,请使用 az mysql/postgres server replica create
命令创建副本:
az postgres server replica create \
--name northwindreplica3 \
--resource-group northwindrg \
--source-server northwind101
删除副本
若要删除副本,请选择 复制 页上的副本,然后选择 停止复制。 副本服务器将从主服务器分离,并改为转换为读写服务器。 不会删除副本,并且会继续为它消耗的资源付费。 如果需要删除副本,请改用 删除副本 命令。
Azure CLI 提供 az mysql/postgres server replica stop
命令来停止复制并将副本转换为读写服务器。 然后使用 az mysql/postgres server delete
命令删除副本并释放其资源。