本文内容
适用于:Azure SQL 数据库
本文提供了用于配置和管理 Azure SQL 数据库超大规模命名副本 的示例。
创建超大规模命名副本
以下示例方案指导你使用 Azure 门户、T-SQL、PowerShell 或 Azure CLI 为数据库 WideWorldImporters_NamedReplica
创建命名副本 WideWorldImporters
。
以下示例使用 T-SQL 为数据库 WideWorldImporters
创建命名副本 WideWorldImporters_NamedReplica
。 主要副本使用服务级别目标 HS_Gen5_4,而命名副本使用 HS_Gen5_2。 这两个副本使用名为 contosoeast
的同一个逻辑服务器。
在 Azure 门户 中,浏览到要为其创建命名副本的数据库。
在“SQL 数据库”页上,选择数据库,滚动到“数据管理”,选择“副本”,然后选择“创建副本”。
在“副本配置” 下选择“命名副本” 。 选择现有的服务器,或为命名副本创建新服务器。 输入命名副本数据库名称,并在必要时配置“计算 + 存储” 选项。
(可选)配置区域冗余 超大规模命名副本。 有关详细信息,请参阅 Azure SQL 数据库超大规模命名副本中的区域冗余 。
在“配置数据库” 页面中,选择“是” 作为“是否要使此数据库区域成为冗余?”
将至少一个高可用性次要副本添加到你的配置。
选择“应用”。
选择“查看 + 创建”查看信息,然后选择“创建”。
命名副本部署过程开始。
完成部署时,命名副本会显示其状态。
返回主数据库页,然后选择“副本”。 你的命名副本会在“命名副本”下列出。
以下示例使用 T-SQL 为数据库 WideWorldImporters
创建命名副本 WideWorldImporters_NamedReplica
。 主要副本使用服务级别目标 HS_Gen5_4,而命名副本使用 HS_Gen5_2。 这两个副本使用名为 contosoeast
的同一个逻辑服务器。
ALTER DATABASE [WideWorldImporters]
ADD SECONDARY ON SERVER [contosoeast]
WITH (SERVICE_OBJECTIVE = 'HS_Gen5_2', SECONDARY_TYPE = Named, DATABASE_NAME = [WideWorldImporters_NamedReplica]);
以下示例使用 PowerShell cmdlet New-AzSqlDatabaseSecondary 为数据库 WideWorldImporters
创建命名副本 WideWorldImporters_NamedReplica
。 主要副本使用服务级别目标 HS_Gen5_4,而命名副本使用 HS_Gen5_2。 这两个副本使用名为 contosoeast
的同一个逻辑服务器。
New-AzSqlDatabaseSecondary -ResourceGroupName "MyResourceGroup" -ServerName "contosoeast" -DatabaseName "WideWorldImporters" -PartnerResourceGroupName "MyResourceGroup" -PartnerServerName "contosoeast" -PartnerDatabaseName "WideWorldImporters_NamedReplica" -SecondaryType Named -SecondaryServiceObjectiveName HS_Gen5_2
要配置区域冗余超大规模命名副本 ,必须为 New-AzSqlDatabaseSecondary
同时指定 -ZoneRedundant
和 -HighAvailabilityReplicaCount
输入参数。
New-AzSqlDatabaseSecondary -ResourceGroupName "MyResourceGroup" -ServerName "contosoeast" -DatabaseName "WideWorldImporters" -PartnerResourceGroupName "MyResourceGroup" -PartnerServerName "contosoeast" -PartnerDatabaseName "WideWorldImporters_NamedReplica" -SecondaryType Named -SecondaryServiceObjectiveName HS_Gen5_2 -HighAvailabilityReplicaCount 1 -ZoneRedundant
要验证是否已创建命名副本,请使用 Get-AzSqlDatabase :
Get-AzSqlDatabase -DatabaseName "WideWorldImporters_NamedReplica" -ResourceGroupName "MyResourceGroup" -ServerName "contosoeast"
以下示例使用 Azure CLI 命令 az sql db replica create 为数据库 WideWorldImporters_NamedReplica
创建命名副本 WideWorldImporters
。 主要副本使用服务级别目标 HS_Gen5_4,而命名副本使用 HS_Gen5_2。 这两个副本使用名为 contosoeast
的同一个逻辑服务器。
az sql db replica create -g MyResourceGroup -n WideWorldImporters -s contosoeast --secondary-type named --partner-database WideWorldImporters_NamedReplica --partner-server contosoeast --service-objective HS_Gen5_2
要配置区域冗余超大规模命名副本 ,必须为 az sql db replica create
同时指定 -zone-redundant
和 ha-replicas
输入参数。
az sql db replica create -g MyResourceGroup -n WideWorldImporters -s contosoeast --secondary-type named --partner-database WideWorldImporters_NamedReplica --partner-server contosoeast --service-objective HS_Gen5_2 --ha-replicas 1 -zone-redundant
要验证是否正在创建命名副本,请执行以下操作:
az sql db show -g MyResourceGroup -n WideWorldImporters -s contosoeast
由于不涉及移动数据,因此在大多数情况下,大约只需一分钟就能创建一个命名副本。 创建命名副本后,可以通过 Azure 门户或任何命令行工具(例如 AZ CLI 或 PowerShell)查看它。 命名副本可用作普通只读数据库。
连接到超大规模命名副本
若要连接到某个超大规模命名副本,必须使用该命名副本的连接字符串,引用其服务器和数据库名称。 由于命名副本始终是只读的,因此无需指定选项 ApplicationIntent=ReadOnly
。
与 HA 副本一样,即使主要副本、HA 副本和命名副本共享同一组页面服务器上的相同数据,每个命名副本上的数据缓存也仍会与主要副本保持同步。 同步由事务日志服务维护,该服务将日志记录从主副本转发到命名副本。 因此,根据命名副本所处理的工作负载,应用程序日志记录的速度可能各不相同,因而不同的命名副本相对于主要副本而言可能会出现不同的数据延迟。
修改超大规模命名副本
在创建命名副本时,可以通过 ALTER DATABASE
命令或任何其他受支持的方式(门户、AZ CLI、PowerShell)定义该命名副本的服务级别目标。 如果在创建命名副本后需要更改其服务级别目标,则可以对命名副本本身使用 ALTER DATABASE ... MODIFY
命令。
在以下示例中,WideWorldImporters_NamedReplica
是 WideWorldImporters
数据库的命名副本。
打开命名副本数据库页,然后选择“计算 + 存储”。 更新 vCore。
ALTER DATABASE [WideWorldImporters_NamedReplica] MODIFY (SERVICE_OBJECTIVE = 'HS_Gen5_4')
Set-AzSqlDatabase -ResourceGroup "MyResourceGroup" -ServerName "contosoeast" -DatabaseName "WideWorldImporters_NamedReplica" -RequestedServiceObjectiveName "HS_Gen5_4"
az sql db update -g MyResourceGroup -s contosoeast -n WideWorldImporters_NamedReplica --service-objective HS_Gen5_4
删除超大规模命名副本
要删除超大规模命名副本,可像删除普通数据库那样删除。
打开命名副本数据库页,然后选择“Delete
”选项。
请确保已连接到包含所要删除的命名副本的服务器的 master
数据库,然后使用以下命令:
此命令删除名为 WideWorldImporters_NamedReplica
的数据库。
DROP DATABASE [WideWorldImporters_NamedReplica];
此命令从逻辑服务器 contosoeast
删除名为 WideWorldImporters_NamedReplica
的数据库。
Remove-AzSqlDatabase -ResourceGroupName "MyResourceGroup" -ServerName "contosoeast" -DatabaseName "WideWorldImporters_NamedReplica"
此命令从逻辑服务器 contosoeast
删除名为 WideWorldImporters_NamedReplica
的数据库。
az sql db delete -g MyResourceGroup -s contosoeast -n WideWorldImporters_NamedReplica
重要
删除用于创建命名副本的主要副本时,这些命名副本也会一并删除。
相关内容