如何使用 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 配合使用来创建只读副本时选择正确的副本区域。 有关如何确定源服务器的存储类型,请参阅链接如何确定服务器上运行的存储类型。
如果选择无法为源服务器创建只读副本的区域,则会遇到这样的问题:部署将持续运行(如下图所示),然后超时并收到“资源预配操作未在允许的超时时间内完成”错误。