---
title: "sys.availability_groups_cluster (Transact-SQL)"
description: Returns a row for each Always On availability group in the Windows Server Failover Clustering (WSFC).
author: rwestMSFT
ms.author: randolphwest
ms.date: 10/17/2023
ms.service: sql
ms.subservice: system-objects
ms.topic: "reference"
f1_keywords:
- "sys.availability_groups_cluster"
- "availability_groups_cluster"
- "availability_groups_cluster_TSQL"
- "sys.availability_groups_cluster_TSQL"
helpviewer_keywords:
- "Availability Groups [SQL Server], monitoring"
- "sys.availability_groups_cluster catalog view"
- "Availability Groups [SQL Server], WSFC clusters"
dev_langs:
- "TSQL"
---
# sys.availability_groups_cluster (Transact-SQL)
[!INCLUDE [SQL Server](../../includes/applies-to-version/sqlserver.md)]
Returns a row for each Always On availability group in Windows Server Failover Clustering (WSFC). Each row contains the availability group metadata from the WSFC cluster.
| Column name | Data type | Description |
| --- | --- | --- |
| `group_id` | **uniqueidentifier** | Unique identifier (GUID) of the availability group. |
| `name` | **sysname** | Name of the availability group. This is a user-specified name that must be unique within the Windows Server Failover Cluster (WSFC). |
| `resource_id` | **nvarchar(40)** | Resource ID for the WSFC cluster resource. |
| `resource_group_id` | **nvarchar(40)** | Resource Group ID for the WSFC cluster resource group of the availability group. |
| `failure_condition_level` | **int** | User-defined failure condition level under which an automatic failover must be triggered, one of the following integer values:
1: Specifies that an automatic failover should be initiated when any of the following occurs:
- The [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] service is down.
- The lease of the availability group for connecting to the WSFC failover cluster expires because no ACK is received from the server instance. For more information, see [How It Works: SQL Server Always On Lease Timeout](https://techcommunity.microsoft.com/t5/sql-server-support/how-it-works-sql-server-alwayson-lease-timeout/ba-p/317268).
2: Specifies that an automatic failover should be initiated when any of the following occurs:
- The instance of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] doesn't connect to cluster, and the user-specified `health_check_timeout` threshold of the availability group is exceeded.
- The availability replica is in failed state.
3: Specifies that an automatic failover should be initiated on critical [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] internal errors, such as orphaned spinlocks, serious write-access violations, or too much dumping. This is the default value.
4: Specifies that an automatic failover should be initiated on moderate [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] internal errors, such as a persistent out-of-memory condition in the [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] internal resource pool.
5: Specifies that an automatic failover should be initiated on any qualified failure conditions, including:
- Exhaustion of SQL Engine worker-threads.
- Detection of an unsolvable deadlock.
The failure-condition levels (1-5) range from the least restrictive, level 1, to the most restrictive, level 5. A given condition level encompasses all of the less restrictive levels. Thus, the strictest condition level, 5, includes the four less restrictive condition levels (1-4), level 4 includes levels 1-3, and so forth.
To change this value, use the `FAILURE_CONDITION_LEVEL` option of the [ALTER AVAILABILITY GROUP](../../t-sql/statements/alter-availability-group-transact-sql.md)[!INCLUDE [tsql](../../includes/tsql-md.md)] statement. |
| `health_check_timeout` | **int** | Wait time (in milliseconds) for the [sp_server_diagnostics](../../relational-databases/system-stored-procedures/sp-server-diagnostics-transact-sql.md) system stored procedure to return server-health information, before the server instance is assumed to be slow or not responding. The default value is `30000` (30,000 milliseconds, or 30 seconds).
To change this value, use the `HEALTH_CHECK_TIMEOUT` option of [ALTER AVAILABILITY GROUP](../../t-sql/statements/alter-availability-group-transact-sql.md)[!INCLUDE [tsql](../../includes/tsql-md.md)] statement. |
| `automated_backup_preference` | **tinyint** | Preferred location for performing backups on the availability databases in this availability group. One of the following values:
0: Primary. Backups should always occur on the primary replica.
1: Secondary only. Performing backups on a secondary replica is preferable.
2: Prefer Secondary. Performing backups on a secondary replica is preferable, but performing backups on the primary replica is acceptable if no secondary replica is available for backup operations. This is the default behavior.
3: Any Replica. No preference about whether backups are performed on the primary replica or on a secondary replica.
For more information, see [Offload supported backups to secondary replicas of an availability group](../../database-engine/availability-groups/windows/active-secondaries-backup-on-secondary-replicas-always-on-availability-groups.md). |
| `automated_backup_preference_desc` | **nvarchar(60)** | Description of `automated_backup_preference`, one of:
PRIMARY
SECONDARY_ONLY
SECONDARY
NONE |
## Remarks
[!INCLUDE [dmv-cluster-column-display](../includes/dmv-cluster-column-display.md)]
## Permissions
Requires VIEW ANY DEFINITION permission on the server instance.
## Related content
- [sys.availability_replicas (Transact-SQL)](sys-availability-replicas-transact-sql.md)
- [What is an Always On availability group?](../../database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server.md)
- [Monitor Availability Groups (Transact-SQL)](../../database-engine/availability-groups/windows/monitor-availability-groups-transact-sql.md)