培训
认证
Microsoft Certified: Azure Database Administrator Associate - Certifications
使用 Microsoft PaaS 关系数据库产品/服务,管理云、本地和混合关系数据库的 SQL Server 数据库基础结构。
你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:Azure SQL 数据库
如分布式函数体系结构中所述,Azure SQL 数据库超大规模提供两种不同类型的计算节点(也称为副本):
次要副本始终为只读,可以是三种不同类型的副本:
每种类型具有不同的体系结构、功能集、用途和成本。 根据你需要的功能,可以只使用其中一种类型,也可以将所有三种类型一起使用。 可以将辅助副本与无服务器或预配的计算层配合使用。
有关配置和管理超大规模命名副本的教程,请参阅:
高可用性 (HA) 副本使用与主要副本相同的页面服务器,因此无需进行数据复制即可添加 HA 副本。 HA 副本用于提高数据库可用性;它们充当用于故障转移的热备用副本。 如果主要副本不可用,系统会快速自动将故障转移到现有的其中一个 HA 副本。 无需更改连接字符串;在故障转移期间,应用程序可能会因活动连接断开而出现极短暂的故障时间。 像平常一样,建议对这种情况实施适当的连接重试逻辑。 有多个驱动程序已经提供了一定程度的自动重试逻辑。 如果使用 .NET,则最新的 Microsoft.Data.SqlClient 库会为可配置的自动重试逻辑提供原生完全支持。
HA 副本使用的服务器和数据库名称与主要副本相同。 其服务级别目标 (SLO) 也始终与主要副本相同。 HA 副本无法像独立资源那样从门户或任何 API 查看或管理。 它们在计费时所用的计算费率与主要副本相同,但存储成本不适用于次要副本。
可以创建 0 到 4 个 HA 副本。 可以在创建新数据库期间指定副本数,或更新现有数据库的副本数。 可以使用常见的管理终结点和工具(例如:Azure PowerShell、Azure CLI、Azure 门户、REST API)来指定 HA 副本数。 创建或删除 HA 副本不会影响主要副本上运行的活动连接。
在超大规模数据库中,客户端使用的连接字符串中的 ApplicationIntent
参数决定连接是路由到可读写的主要副本,还是路由到只读的 HA 副本。 如果 ApplicationIntent
设置为 ReadOnly
并且数据库不具有辅助副本,连接会路由到主要副本并默认执行 ReadWrite
行为。
-- Connection string with application intent
Server=tcp:<myserver>.database.windows.net;Database=<mydatabase>;ApplicationIntent=ReadOnly;User ID=<myLogin>;Password=<myPassword>;Trusted_Connection=False; Encrypt=True;
所有 HA 副本的资源容量都相同。 如果存在多个 HA 副本,则旨在读取的工作负载会任意分布在所有可用的 HA 副本中。 如果存在多个 HA 副本,请记住,每个 HA 副本在处理主要副本上发生的数据更改方面可能会出现不同的数据延迟。 每个 HA 副本使用与同一组页面服务器上的主要副本相同的数据。 但是,每个 HA 副本上的本地缓存通过事务日志服务来反映主要副本上发生的更改,该服务会将主要副本中的日志记录转发到 HA 副本。 因此,根据 HA 副本上执行的工作负载,应用日志记录的速度可能各不相同,因而不同的 HA 副本相对于主要副本而言可能会出现不同的数据延迟。
与 HA 副本一样,命名副本使用与主要副本相同的页面服务器。 类似于 HA 副本,无需进行数据复制即可添加命名副本。
HA 副本和命名副本之间存在差异:
因此对于只读工作负载而言,命名副本与 HA 副本相比有诸多优势:
命名副本的主要目标是支持多种的读取扩展场景,并改进混合事务和分析处理 (HTAP) 工作负载。 下面提供了有关如何创建此类解决方案的示例:
此外,命名副本还提供其他许多用例所需的灵活性和弹性:
备注
有关超大规模命名副本的常见问题解答,请参阅 Azure SQL 数据库超大规模命名副本常见问题解答。
为区域冗余配置的超大规模命名副本使用 Azure 可用性区域将命名副本计算节点分配到 Azure 区域中的不同物理位置。 通过为命名副本选择区域冗余,可以增强超大规模数据库所有层对更广泛故障(包括数据中心中断)的复原能力,而无需对应用程序逻辑进行任何修改。 有关详细信息,请参阅超大规模区域冗余可用性。
有关创建区域冗余超大规模命名副本的教程,请参阅创建超大规模命名副本。
有关故障排除和测试应用程序故障复原能力,请参阅测试应用程序故障复原能力。
使用活动异地复制可以在相同或不同的 Azure 区域创建超大规模主要数据库的可读次要副本。 必须在不同的逻辑服务器上创建异地副本。 异地副本的数据库名称始终与主要副本的数据库名称相匹配。
创建异地副本时,会将主要副本中的所有数据复制到一组不同的页面服务器。 异地副本不与主要副本共享页面服务器,即使它们位于同一区域也是如此。 此体系结构为异地故障转移提供了必要的冗余。
异地副本用于通过异步复制维护数据库的事务一致副本。 如果异地副本位于不同的 Azure 区域,当主要区域发生灾难或中断时,便可以使用异地副本进行灾难恢复。 异地副本还可用于异地读取扩展方案。 自 2022 年 10 月起,支持超大规模异地次要副本复制中的数据库副本。
超大规模数据库的异地复制目前有以下限制:
有关故障排除和测试应用程序故障复原能力,请参阅测试应用程序故障复原能力。
确保在 PowerShell 和 CLI 中创建区域冗余命名副本时至少指定一个高可用性副本。 有关示例,请参阅创建超大规模命名副本。
ha-replicas
和 redundant
。HighAvailabilityReplicaCount
和 ZoneRedundant
。(ProvisioningDisabled) There is an insufficient number of high availability replicas to enable zone redundancy for a Hyperscale database.
超大规模数据库应已启用区域冗余,作为为命名副本启用此功能的先决条件。
(DatabaseNamedReplicaSourceDatabaseNotZoneRedundant) Zone Redundancy cannot be enabled on this Named Replica since the primary Hyperscale Database is not zone redundant.
。对于 name
和 database_id
以外的列中的命名副本,从 sys.databases
返回的行值可能不一致且不正确。 例如,即使与命名副本对应的主数据库设置为兼容级别 150,命名副本的 compatibility_level
列也可以报告为 140。 如果可能,解决方法是使用 DATABASEPROPERTYEX()
函数获取相同的数据,该函数会返回正确的数据。
有关配置和管理超大规模命名副本的教程,请参阅:
有关详细信息,请参阅:
培训
认证
Microsoft Certified: Azure Database Administrator Associate - Certifications
使用 Microsoft PaaS 关系数据库产品/服务,管理云、本地和混合关系数据库的 SQL Server 数据库基础结构。