如何使用 PowerShell 在 Azure Database for MySQL 中创建和管理只读副本

适用于:Azure Database for MySQL - 单一服务器

重要

Azure Database for MySQL 单一服务器即将停用。 强烈建议升级到 Azure Database for MySQL 灵活服务器。 有关如何迁移到 Azure Database for MySQL 灵活服务器的详细信息,请参阅 Azure Database for MySQL 单一服务器发生了什么情况?

本文介绍如何使用 PowerShell 在 Azure Database for MySQL 服务中创建和管理只读副本。 若要详细了解只读副本,请参阅概述

Azure PowerShell

可以使用 PowerShell 创建和管理只读副本。

先决条件

若要完成本操作指南,需要:

重要

尽管 Az.MySql PowerShell 模块为预览版,但必须使用以下命令从 Az PowerShell 模块单独安装它:Install-Module -Name Az.MySql -AllowPrerelease。 Az.MySql PowerShell 模块正式版推出后,它会包含在将来的 Az PowerShell 模块发行版中。

使用 Connect-AzAccount cmdlet 连接到 Azure 帐户。

重要

只读副本功能仅适用于“常规用途”或“内存优化”定价层中的 Azure Database for MySQL 服务器。 请确保源服务器位于其中一个定价层中。

如果在主服务器上启用了 GTID (gtid_mode = ON),则新创建的副本也会启用 GTID 并使用基于 GTID 的复制。 若要了解详细信息,请参阅全局事务标识符 (GTID)

创建只读副本

重要

如果源服务器没有现有的副本服务器,则源服务器可能需要重启才能为复制做好自身准备,具体取决于使用的存储 (v1/v2)。 请考虑服务器重启,并在非高峰时段执行此操作。 有关更多详细信息,请参阅源服务器重启

可以使用以下命令创建只读副本服务器:

Get-AzMySqlServer -Name mydemoserver -ResourceGroupName myresourcegroup |
  New-AzMySqlReplica -Name mydemoreplicaserver -ResourceGroupName myresourcegroup

New-AzMySqlReplica 命令需要以下参数:

设置 示例值 说明
ResourceGroupName  myresourcegroup  在其中创建副本服务器的资源组。 
名称 mydemoreplicaserver 所创建的新副本服务器的名称。

若要创建跨区域只读副本,请使用 Location 参数。 以下示例在“中国北部”区域中创建一个副本。

Get-AzMySqlServer -Name mrdemoserver -ResourceGroupName myresourcegroup |
  New-AzMySqlReplica -Name mydemoreplicaserver -ResourceGroupName myresourcegroup -Location chinanorth

注意

若要详细了解可以在哪些区域中创建副本,请访问只读副本概念文章

默认情况下,除非指定了 Sku 参数,否则将使用与源服务器相同的服务器配置来创建只读副本。

注意

建议副本服务器的配置应始终采用与源服务器相同或更大的值,以确保副本能够与主服务器保持一致。

列出源服务器的副本

若要查看给定源服务器的所有副本,请运行以下命令:

Get-AzMySqlReplica -ResourceGroupName myresourcegroup -ServerName mydemoserver

Get-AzMySqlReplica 命令需要以下参数:

设置 示例值 说明
ResourceGroupName  myresourcegroup  要在其中创建副本服务器的资源组。 
ServerName mydemoserver 源服务器的名称或 ID。

删除副本服务器

可以通过运行 Remove-AzMySqlServer cmdlet 来删除只读副本服务器。

Remove-AzMySqlServer -Name mydemoreplicaserver -ResourceGroupName myresourcegroup

删除源服务器

重要

删除源服务器会停止复制到所有副本服务器,并删除源服务器本身。 副本服务器成为现在支持读取和写入的独立服务器。

若要删除源服务器,可以运行 Remove-AzMySqlServer cmdlet。

Remove-AzMySqlServer -Name mydemoserver -ResourceGroupName myresourcegroup

已知问题

常规用途和内存优化层中的服务器使用两代存储,常规用途存储 v1(支持最高 4 TB)和常规用途存储 v2(支持最高 16 TB 存储)。 源服务器和副本服务器应该具有相同的存储类型。 由于常规用途存储 v2 在所有区域中均不可用,因此请确保在将位置与 PowerShell 配合使用来创建只读副本时选择正确的副本区域。 有关如何确定源服务器的存储类型,请参阅链接如何确定服务器上运行的存储类型

如果选择无法为源服务器创建只读副本的区域,则会遇到这样的问题:部署将持续运行(如下图所示),然后超时并收到“资源预配操作未在允许的超时时间内完成”错误。

只读副本 cli 错误

后续步骤