如何使用 Azure CLI 和 REST API 在 Azure Database for MariaDB 中创建和管理只读副本

重要

Azure Database for MariaDB 已列入停用计划。 强烈建议迁移到 Azure Database for MySQL。 若要详细了解如何迁移到 Azure Database for MySQL,请参阅《Azure Database for MariaDB 发生了什么情况?》。

本文介绍如何使用 Azure CLI 和 REST API 在 Azure Database for MariaDB 服务中创建和管理只读副本。

Azure CLI

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

先决条件

重要

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

创建只读副本

重要

在为没有现有副本的源创建副本时,该源服务器会先重启,以便为复制做好自身准备。 请考虑这一点并在非高峰期执行这些操作。

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

az mariadb server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup

az mariadb server replica create 命令需要以下参数:

设置 示例值 说明
resource-group  myresourcegroup  要在其中创建副本服务器的资源组。 
name mydemoreplicaserver 所创建的新副本服务器的名称。
source-server mydemoserver 要从中进行复制的现有源服务器的名称或 ID。

若要创建跨区域只读副本,请使用 --location 参数。

下面的 CLI 示例在中国北部 2 创建副本。

az mariadb server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup --location chinanorth2

注意

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

注意

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

列出源服务器的副本

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

az mariadb server replica list --server-name mydemoserver --resource-group myresourcegroup

az mariadb server replica list 命令需要以下参数:

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

停止复制到副本服务器

重要

停止复制到服务器操作不可逆。 一旦源服务器和副本服务器之间的复制停止,将无法撤消它。 然后,副本服务器将成为独立服务器,并且现在支持读取和写入。 此服务器不能再次成为副本服务器。

可以使用以下命令停止复制到只读副本服务器:

az mariadb server replica stop --name mydemoreplicaserver --resource-group myresourcegroup

az mariadb server replica stop 命令需要以下参数:

设置 示例值 说明
resource-group  myresourcegroup  副本服务器所在的资源组。 
name mydemoreplicaserver 要停止在其上进行复制的副本服务器的名称。

删除副本服务器

可以通过运行 az mariadb server delete 命令删除只读副本服务器。

az mariadb server delete --resource-group myresourcegroup --name mydemoreplicaserver

删除源服务器

重要

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

若要删除源服务器,可以运行 az mariadb server delete 命令。

az mariadb server delete --resource-group myresourcegroup --name mydemoserver

REST API

可以使用 Azure REST API 创建和管理只读副本。

创建只读副本

可以使用创建 API 创建只读副本:

PUT https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{replicaName}?api-version=2017-12-01
{
  "location": "chinanorth2",
  "properties": {
    "createMode": "Replica",
    "sourceServerId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{masterServerName}"
  }
}

注意

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

如果尚未在“常规用途”或“内存优化”源服务器上将 azure.replication_support 参数设置为“REPLICA”并重启服务器,将会收到错误。 请在创建副本之前完成这两个步骤。

使用与主服务器相同的计算和存储设置创建副本。 创建副本后,可以独立于源服务器更改多项设置:计算代系、vCore 数、存储和备份保留期。 定价层也可以独立更改,但“基本”层除外。

重要

将源服务器设置更新为新值之前,请将副本设置更新为一个相等或更大的值。 此操作可帮助副本与主服务器发生的任何更改保持同步。

列出副本

可以使用副本列表 API 查看源服务器的副本列表:

GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{masterServerName}/Replicas?api-version=2017-12-01

停止复制到副本服务器

可以使用更新 API 停止源服务器与只读副本之间的复制。

停止复制到源服务器和只读副本后,无法撤消该操作。 只读副本将成为支持读取和写入的独立服务器。 独立服务器不能再次成为副本。

PATCH https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{masterServerName}?api-version=2017-12-01
{
  "properties": {
    "replicationRole":"None"  
   }
}

删除源服务器或副本服务器

若要删除源服务器或副本服务器,请使用删除 API

删除源服务器后,将停止复制到所有只读副本的操作。 只读副本将成为支持读取和写入的独立服务器。

DELETE https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}?api-version=2017-12-01

后续步骤