Edit

Share via


Basic Always On availability groups for a single database

Applies to: SQL Server

Always On basic availability groups provide a high availability solution for SQL Server 2016 (13.x) and later versions on Standard edition. A basic availability group supports a failover environment for a single database. It is created and managed much like traditional (advanced) availability group with Enterprise edition. The differences and limitations of basic availability groups are summarized in this document.

Features

Basic availability groups replace the deprecated Database Mirroring feature, and provide a similar level of feature support. Basic availability groups enable a primary database to maintain a single replica. This replica can use either synchronous-commit mode or asynchronous-commit mode. For more information about availability modes, see Differences between availability modes for an Always On availability group. The secondary replica remains inactive unless there's a need to fail over. This failover reverses the primary and secondary role assignments, causing the secondary replica to become the primary active database. For more information on failover, see Failover and Failover Modes. Basic availability groups can operate in a hybrid environment that spans on-premises and Microsoft Azure.

Limitations

Basic availability groups use a subset of features compared to advanced availability groups on SQL Server 2016 (13.x) Enterprise edition. Basic availability groups include the following limitations:

  • Limit of two replicas (primary and secondary). Basic Availability Groups for SQL Server 2017 (14.x) on Linux support an extra configuration only replica.

  • No read access on secondary replica.

  • No backups on secondary replica.

  • No integrity checks on secondary replicas.

  • No support for replicas hosted on servers running a version of SQL Server before SQL Server 2016 (13.x).

  • Support for one availability database.

  • Basic availability groups can't be upgraded to advanced availability groups. The group must be dropped and readded to a group that contains servers running only SQL Server 2016 (13.x) Enterprise edition.

  • Basic availability groups are only supported for Standard edition servers.

  • Basic availability groups can't be part of a distributed availability group.

  • You might have multiple Basic availability groups connected to a single instance of SQL Server.

Configuration

An Always On basic availability group can be created on any two SQL Server 2016 (13.x) Standard edition servers. When you create a basic availability group, you must specify both replicas during creation.

To create a basic availability group, use the CREATE AVAILABILITY GROUP Transact-SQL command and specify the WITH BASIC option (the default is ADVANCED). You can also create the basic availability group using the UI in SQL Server Management Studio starting with version 17.8. For more information, see CREATE AVAILABILITY GROUP.

See the following example for creating a basic availability group using 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 

Note

The limitations of basic availability groups apply to the CREATE AVAILABILITY GROUP command when WITH BASIC is specified. For example, you get an error if you attempt to create a basic availability group that permits read access. Other limitations apply in the same manner. Refer to the Limitations section of this article for details.