配置只读副本

已完成

公司可以使用数据库的只读副本来全局缩放性能。 当组织的客户分布于全球各地,并且有数百万用户尝试访问其数据时,副本将很有用。 完成后,他们还可以处理区域灾难恢复。

你的公司已成长为一家国际知名的自行车销售商。 首席信息官已要求你的部门在全球范围内提升在线店铺对用户的响应能力。 你知道快速简单提高性能的一种方法是将数据库的只读副本放入各个地理位置。

本单元中,你将了解如何轻松创建和管理 Azure Database for MySQL/PostgreSQL 中存储的数据的只读副本。

如何使用读取复制

使用读取复制将数据从 Azure Database for MySQL/PostgreSQL 的一个实例(称为主数据库)复制到多达 5 个副本。 使用复制针对读取密集型的工作负载将负载分散到多个服务器。 复制仅是单向的,且每个副本是只读的。 复制以异步方式运行,因此数据在主服务器上发生更改的时间与它出现在每个副本的时间之间存在延迟。

副本可以位于不同于主服务器所在区域的区域。 使用副本将数据放在需要它的客户端附近,以减少查询延迟。 跨区域复制还提供了处理区域灾难恢复的机制。

注意

跨区域复制在基本性能层中不可用。

每个副本都是独立的 Azure Database for MySQL/PostgreSQL 实例,但配置为只读。 如果与主服务器的连接丢失,或者主服务器遭到删除,则每个副本成为独立的读写服务器。 这种情况下,副本之间不再同步,因此它们托管的数据可能开始分离。

注意

如果使用 Azure Database for MySQL,则只在“常规用途”定价层和“内存优化”定价层中提供只读副本。 此外,Azure Database for PostgreSQL 灵活服务器中不提供只读副本。

创建副本

将副本添加到服务器的最简单方法是使用 Azure 门户中服务器的“复制”页。 在此页上选择“+ 添加副本”。

Image of the Replication page for Azure Database for PostgreSQLThe + Add Replica command is highlighted.

系统将提示输入服务器的名称和位置。 除此之外,副本的其他详细信息(包括定价层)将设置为与主服务器所用的相同。 创建副本后,可以修改该服务器的任何设置,包括调整定价层。 但是,确保每个副本都有足够的资源用于处理与接收和存储复制的数据相关的工作负载。

Image of the replica details page.

注意

如果使用的是“常规用途”定价层或“内存优化”定价层,还必须启用复制支持。 通过在“复制”页面选择“启用复制支持”来执行此操作。 服务器将重新启动,然后才能继续。

添加副本后,它将显示在“复制”页上。 每个副本的部署和同步可能需要很长时间,具体取决于主数据的库大小和数据库中的数据量。

Image of replicas on the Replication page for Azure Database for PostgreSQL.

通过在“复制”页上选择副本来重新配置副本并调整其大小。

如果希望使用 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 命令删除副本并释放其资源。