你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:Azure SQL 数据库
本指南介绍如何使用 可用性区域更新 Azure SQL 数据库以实现区域冗余。
为 Azure SQL 数据库启用区域冗余可以保证高可用性,使数据库和弹性池能够复原到更大的故障集,例如灾难性的数据中心中断,而无需更改应用程序逻辑。 启用区域冗余后,数据库会利用可用性区域跨单个 Azure 区域中的多个物理位置复制数据。
Prerequisites
在启用可用性区域支持之前,请确保 Azure SQL 数据库处于受支持的服务层和部署模型中。 确保在支持可用性区域的区域提供层级和模型。
| 服务层级 | 部署模型 | 区域冗余可用性 |
|---|---|---|
| 高级 | 单一数据库或弹性池 | 支持可用性区域的所有地区 |
| 业务关键 | 单一数据库或弹性池 | 支持可用性区域的所有地区 |
| 常规用途 | 单一数据库或弹性池 | 支持可用性区域的特定区域 |
| 超大规模 | 单一数据库 | 支持可用性区域的所有地区 |
停机时间要求
为高级、业务关键和常规用途服务层级启用区域冗余是一项联机操作,仅会导致短暂断开连接。 如果已实现标准暂时性错误的重试逻辑,那么不会注意到故障转移。
对于“超大规模”服务层级,区域冗余支持只能在数据库创建期间指定,并且在资源预配后不能修改。 如果希望转移到可用性区域支持,则需要使用数据库拷贝、时间点还原或异地副本来传输数据。 如果目标数据库与源数据库位于不同的区域,或者目标数据库的数据备份存储冗余与源数据库不同,则故障时间与数据操作的大小成正比。
启用区域冗余(高级、业务关键和常规用途)
对于高级、业务关键和常规用途服务层,可以实现区域冗余。
按照以下步骤为单一数据库或弹性池启用区域冗余。
为单一数据库启用区域冗余
- Azure 门户
- PowerShell
- Azure CLI
- REST API
转到 Azure 门户以查找数据库。 搜索并选择“SQL 数据库”。
选择所需的数据库。
在“设置”下,选择“计算 + 存储”。
选择是来回答“您是否希望使此数据库区域冗余?”
选择应用。
等待在 Azure 门户顶部菜单的“通知”中接收操作完成通知。
要验证是否已启用区域冗余,请选择“概述”,然后选择“属性”。
在“可用性”部分下,确认区域冗余设置为“已启用”。
为弹性池启用区域冗余
Important
启用弹性池的区域冗余支持会使池中的所有数据库具备区域冗余功能。
- Azure 门户
- PowerShell
- Azure CLI
- REST API
转到 Azure 门户 以查找并选择所需的弹性池。
在“设置”下,选择“计算 + 存储”。
选择“是”作为“是否要使此弹性池区域冗余?”。
选择“保存”。
等待在 Azure 门户顶部菜单的“通知”中接收操作完成通知。
要验证是否已启用区域冗余,请选择“配置”,然后选择“池设置”。
区域冗余选项应设置为“是”。
重新部署 (超大规模)
对于“超大规模”服务层级,区域冗余支持只能在数据库创建期间指定,并且在配置数据库后不能修改。 如果希望获得区域冗余支持,则需要从现有“超大规模”服务层级单一数据库执行数据传输。 要执行传输并启用区域冗余选项,必须使用数据库副本、时间点还原或异地副本创建克隆。
重新部署注意事项
有两种重新部署模式(联机和脱机):
数据库复制和时间点还原方法(脱机模式)在某个时间点创建事务一致的数据库。 因此,在启动复制或还原操作后执行的任何数据更改在复制或还原的数据库上都不可用。
异地副本方法(在线模式)是一种重新部署的方法,其中原始端的任何数据更改都会同步到目标端。
必须更新应用程序的连接字符串以指向区域冗余数据库。
重新部署单一数据库
数据库副本
要创建数据库副本并使用 Azure 门户、PowerShell 或 Azure CLI 启用区域冗余,请按照在 Azure SQL 数据库中复制数据库的事务一致性副本中的说明进行操作。
时间点还原
要创建时间点数据库还原并使用 Azure 门户、PowerShell 或 Azure CLI 启用区域冗余,请按照时间点还原中的说明进行操作。
Geo-replica
要创建数据库的异地副本,请执行以下操作:
按照配置活动异地复制和故障转移(Azure SQL 数据库)中的 Azure 门户、PowerShell 或 Azure CLI 的说明进行操作,并在“计算 + 存储”下启用区域冗余
副本已设定种子,设定数据种子所花费的时间取决于源数据库的大小。 可以在 Azure 门户中监视播种的状态,也可以在副本数据库上运行以下 Transact-SQL 查询:
SELECT * FROM sys.dm_geo_replication_link_status; SELECT * FROM sys.dm_operation_status;数据库种子设定完成后,执行已计划的(无数据丢失)故障转移,使区域冗余目标数据库成为主数据库。
- 使用 sys.dm_geo_replication_link_status 查看异地复制状态。 当辅助数据库处于事务一致状态时,
replication_state_desc为CATCH_UP。 - 在 sys.dm_operation_status 动态管理视图中,当种子设定操作完成时,查找
state_desc为COMPLETED。
- 使用 sys.dm_geo_replication_link_status 查看异地复制状态。 当辅助数据库处于事务一致状态时,
更新应用程序的连接字符串中的服务器名称,以反映新的区域冗余数据库。
要进行清理,请考虑从异地副本关系中删除原始非区域冗余数据库。 可以选择删除它。
验证区域冗余
可以使用 Azure PowerShell 或 Azure CLI 或 REST API 检查 ZoneRedundant 数据库的属性。
- 在 Azure 门户中,导航到 Azure SQL 数据库。
- 在“设置”下,选择“计算 + 存储”。
- 检查 是否要使此数据库区域冗余? 设置的值。
禁用区域冗余
若要为单一数据库或弹性池禁用区域冗余,可以使用 Azure 门户、ARM API、PowerShell 或 CLI。
为单一数据库禁用区域冗余
转到 Azure 门户,查找并选择不再需要区域冗余的数据库。
在“设置”下,选择“计算 + 存储”。
对于“是否要使此数据库区域成为冗余?”,请选择“否”
选择“保存”。
禁用弹性池的区域冗余
转到 Azure 门户以查找并选择不再需要区域冗余的弹性池。
在“设置”下,选择“计算 + 存储”。
对于“是否要使此弹性池区域冗余?”,请选择“否”。
选择“保存”。
若要禁用超大规模服务层级的区域冗余,可以反向执行重新部署(超大规模)中所述的步骤。