单一数据库的基本 Always On 可用性组

适用于:SQL Server

Always On 基本可用性组为 SQL Server Standard Edition 2016 版及更高版本提供高可用性解决方案。 基本可用性组支持单个数据库的故障转移环境。 它的创建和管理与传统(高级)的 Always On 可用性组 (SQL Server) 的 Enterprise Edition 非常类似。 本文档概述了基本可用性组的差异和限制。

功能

AlwaysOn 基本可用性组取代已弃用的数据库镜像功能,并提供类似级别的功能支持。 基本可用性组使主数据库可以维护单一的副本。 此副本可以使用同步提交模式或异步提交模式。 有关可用性模式的详细信息,请参阅可用性模式(Always On 可用性组)。 次要副本将保持非活动状态,除非需要进行故障转移。 此故障转移会反转主要和次要角色分配,导致次要副本成为活动的主数据库。 有关故障转移的详细信息,请参阅故障转移和故障转移模式(Always On 可用性组)。 基本可用性组可以在跨本地和 Microsoft Azure 的混合环境中运行。

限制

相比 SQL Server 2016 Enterprise Edition 上的高级可用性组,基本可用性组仅使用一部分功能。 基本可用性组包括以下限制:

  • 两个副本(主要和次要)的限制。 Linux 上的 SQL Server 2017 的基本可用性组支持附加的仅配置副本。

  • 对次要副本没有读取访问权限。

  • 在次要副本上没有备份。

  • 在次要副本上没有完整性检查。

  • 不支持在运行 SQL Server 2016 社区技术预览版 3 (CTP3) 之前的 SQL Server 版本的服务器上托管的副本。

  • 支持一个可用性数据库。

  • 基本可用性组不能升级到高级可用性组。 必须删除该组并重新添加到包含仅运行 SQL Server 2016 Enterprise Edition 的服务器的组中。

  • 仅 Standard Edition 服务器支持基本可用性组。

  • 基本可用性组不能为分布式可用性组的一部分。

  • 可能有多个基本可用性组连接到一个 SQL Server 实例。

配置

可以在任意两个 SQL Server 2016 Standard Edition 服务器上创建 AlwaysOn 基本可用性组。 当创建基本可用性组时,必须在创建期间指定两个副本。

若要创建基本可用性组,请使用 CREATE AVAILABILITY GROUP Transact-SQL 命令并指定 WITH BASIC 选项(默认值为 ADVANCED)。 从版本 17.8 开始,还可以使用 SQL Server Management Studio 中的 UI 创建基本可用性组。 有关详细信息,请参阅 CREATE AVAILABILITY GROUP (Transact-SQL)

请参阅以下有关使用 Transact-SQL (T-SQL) 创建基本可用性组的示例:

CREATE AVAILABILITY GROUP [BasicAG]
WITH (AUTOMATED_BACKUP_PREFERENCE = PRIMARY,
BASIC,
DB_FAILOVER = OFF,
DTC_SUPPORT = NONE,
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0)
FOR DATABASE [AdventureWorks]
REPLICA ON N'SQLVM1\MSSQLSERVER' WITH (ENDPOINT_URL = N'TCP://SQLVM1.Contoso.com:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, SEEDING_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO)),
    N'SQLVM2\MSSQLSERVER' WITH (ENDPOINT_URL = N'TCP://SQLVM2.Contoso.com:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, SEEDING_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO));

GO

注意

在指定“WITH BASIC” 时,基本可用性组的限制适用于 CREATE AVAILABILITY GROUP 命令。 例如,如果你尝试创建一个允许读取访问权限的基本可用性组,将收到错误。 其他限制同样适用。 有关详细信息,请参阅本主题的“限制”部分。

另请参阅

AlwaysOn 可用性组概述 (SQL Server)