Partager via


sys.dm_hadr_availability_replica_states (Transact-SQL)

S'applique à :SQL Server

Retourne une ligne pour chaque réplica local et une ligne pour chaque réplica distant dans le même groupe de disponibilité Always On qu'un réplica local. Chaque ligne contient des informations sur l'état d'un réplica donné.

Important

Pour obtenir des informations sur chaque réplica d’un groupe de disponibilité donné, interrogez sys.dm_hadr_availability_replica_states l’instance de serveur qui héberge le réplica principal. Lorsque vous interrogez cette vue de gestion dynamique sur une instance de serveur qui héberge un réplica secondaire d’un groupe de disponibilité, elle retourne uniquement des informations locales pour le groupe de disponibilité.

Nom de la colonne Type de données Pouvant être nul Description
replica_id uniqueidentifier Non Identificateur unique du réplica.
group_id uniqueidentifier Non Identificateur unique du groupe de disponibilité.
is_local bit Non Indique si le réplica est local, l’un des suivants :

0 = Indique un réplica secondaire distant dans un groupe de disponibilité dont le réplica principal est hébergé par l’instance de serveur local. Cette valeur est présente uniquement sur l'emplacement de réplica principal.

1 = Indique un réplica local. Sur les réplicas secondaires, il s'agit de la seule valeur disponible pour le groupe de disponibilité auquel le réplica appartient.
role tinyint Oui Rôle de groupes de disponibilité Always On actuel d’un réplica local ou d’un réplica distant connecté, l’un des suivants :

0 = Résolution
1 = Principal
2 = Secondaire

Pour plus d’informations sur les rôles de groupes de disponibilité Always On, consultez Qu’est-ce qu’un groupe de disponibilité Always On ?
role_desc nvarchar(60) Oui Description de role, l’une des suivantes :

RESOLVING
PRIMARY
SECONDARY
operational_state tinyint Oui État opérationnel actuel du réplica, l’un des suivants :

0 = Basculement en attente
1 = En attente
2 = En ligne
3 = Hors connexion
4 = Échec
5 = Échec, aucun quorum
NULL = Le réplica n’est pas local.

Pour plus d’informations, consultez Rôles et États opérationnels, plus loin dans cet article.
operational_state_desc nvarchar(60) Oui Description de operational_state, l’une des suivantes :

PENDING_FAILOVER

PENDING

ONLINE

OFFLINE

FAILED

FAILED_NO_QUORUM

NULL
connected_state tinyint Oui Indique si un réplica secondaire est actuellement connecté au réplica principal. Les valeurs possibles sont indiquées ci-dessous avec leurs descriptions.

0 = Déconnecté. La réponse d’un réplica de disponibilité à l’état DISCONNECTED dépend de son rôle : sur le réplica principal, si un réplica secondaire est déconnecté, ses bases de données secondaires sont marquées comme NOT SYNCHRONIZED sur le réplica principal, qui attend que le réplica secondaire se reconnecte ; Sur un réplica secondaire, lors de la détection qu’il est déconnecté, le réplica secondaire tente de se reconnecter au réplica principal.

1 = Connecté.

Chaque réplica principal suit l'état de la connexion pour chaque réplica secondaire dans le même groupe de disponibilité. Les réplicas secondaires suivent l'état de connexion du réplica principal uniquement.
connected_state_desc nvarchar(60) Oui Description de connection_state, l’une des suivantes :

DISCONNECTED
CONNECTED
recovery_health tinyint Oui Cumul de la database_state colonne de la vue de gestion dynamique sys.dm_hadr_database_replica_states . Voici les valeurs possibles et leurs descriptions.

0 = En cours. Au moins une base de données jointe a un état de base de données autre que ONLINE (database_state n’est pas 0).

1 = En ligne. Toutes les bases de données jointes ont un état de base de ONLINE données (database_state is 0).

NULL: is_local = 0
recovery_health_desc nvarchar(60) Oui Description de recovery_health, l’une des suivantes :

ONLINE_IN_PROGRESS
ONLINE
NULL
synchronization_health tinyint Oui Reflète un cumul de l’état de synchronisation de base de données (synchronization_state) de toutes les bases de données de disponibilité jointes (également appelées réplicas) et le mode de disponibilité du réplica (mode de validation synchrone ou de validation asynchrone). Le cumul reflète l’état cumulé le moins sain des bases de données sur le réplica. Vous trouverez ci-dessous les valeurs possibles et leurs descriptions.

0 = Pas sain. Au moins une base de données jointe est dans l’état NOT SYNCHRONIZING .

1 = Partiellement sain. Certains réplicas ne sont pas dans l’état de synchronisation cible : les réplicas de validation synchrone doivent être synchronisés et les réplicas de validation asynchrone doivent être synchronisés.

2 = Sain. Tous les réplicas sont dans l'état de synchronisation cible : les réplicas avec validation synchrone sont synchronisés, et les réplicas avec validation asynchrone sont en cours de synchronisation.
synchronization_health_desc nvarchar(60) Oui Description de synchronization_health, l’une des suivantes :

NOT_HEALTHY
PARTIALLY_HEALTHY
HEALTHY
last_connect_error_number int Oui Numéro de la dernière erreur de connexion.
last_connect_error_description nvarchar(1024) Oui Texte du last_connect_error_number message.
last_connect_error_timestamp datetime Oui Horodatage de date et d’heure indiquant quand l’erreur last_connect_error_number s’est produite.
write_lease_remaining_ticks bigint Oui Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
current_configuration_commit_start_time_utc datetime Oui Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
is_internal bit Oui Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
operational_state_desc nvarchar(60) Oui Description de operational_state, l’une des suivantes :

PENDING_FAILOVER
PENDING
ONLINE
OFFLINE
FAILED
FAILED_NO_QUORUM
NULL
recovery_health tinyint Oui Cumul de la database_state colonne de la vue de gestion dynamique sys.dm_hadr_database_replica_states . Voici les valeurs possibles et leurs descriptions.

0 = En cours. Au moins une base de données jointe a un état de base de données autre que ONLINE (database_state n’est pas 0).

1 = En ligne. Toutes les bases de données jointes ont un état de base de ONLINE données (database_state is 0).

NULL: is_local n’est pas 0
synchronization_health tinyint Non Reflète un cumul de l’état de synchronisation de base de données (synchronization_state) de toutes les bases de données de disponibilité jointes (également appelées réplicas) et le mode de disponibilité du réplica (mode de validation synchrone ou de validation asynchrone). Le cumul reflète l’état cumulé le moins sain des bases de données sur le réplica. Les valeurs possibles et leurs descriptions sont les suivantes :

0 = Pas sain. Au moins une base de données jointe est dans l’état NOT SYNCHRONIZING .

1 = Partiellement sain. Certains réplicas ne sont pas dans l’état de synchronisation cible : les réplicas de validation synchrone doivent être synchronisés et les réplicas de validation asynchrone doivent être synchronisés.

2 = Sain. Tous les réplicas sont dans l'état de synchronisation cible : les réplicas avec validation synchrone sont synchronisés, et les réplicas avec validation asynchrone sont en cours de synchronisation.

Rôles et états opérationnels

Le rôle, rolereflète l’état d’un réplica de disponibilité donné. L’état opérationnel, operational_statedécrit si le réplica est prêt à traiter les demandes du client pour toutes les bases de données du réplica de disponibilité. Le tableau suivant récapitule les états opérationnels possibles pour chaque rôle : RESOLVING, PRIMARYet SECONDARY.

RESOLVING: lorsqu’un réplica de disponibilité se trouve dans le RESOLVING rôle, les états opérationnels possibles sont comme indiqué dans le tableau suivant.

État opérationnel Description
PENDING_FAILOVER Le système traite une commande de basculement pour le groupe de disponibilité.
OFFLINE Toutes les données de configuration du réplica de disponibilité sont mises à jour sur le cluster WSFC et, également, dans les métadonnées locales, mais le groupe de disponibilité ne dispose actuellement pas d’un réplica principal.
FAILED Un échec de lecture s’est produit lors d’une tentative de récupération d’informations à partir du cluster WSFC.
FAILED_NO_QUORUM Le nœud WSFC local n’a pas de quorum. Cet état est déduit.

PRIMARY: Lorsqu’un réplica de disponibilité effectue le PRIMARY rôle, il s’agit actuellement du réplica principal. Les états opérationnels possibles sont comme indiqué dans le tableau suivant.

État opérationnel Description
PENDING Cet état est temporaire, mais un réplica principal peut être bloqué dans cet état si les workers ne sont pas disponibles pour traiter les demandes.
ONLINE La ressource du groupe de disponibilité est en ligne, et tous les threads de travail de base de données ont été sélectionnés.
FAILED Le réplica de disponibilité ne peut pas lire ou écrire à partir du cluster WSFC.

SECONDARY: Lorsqu’un réplica de disponibilité effectue le SECONDARY rôle, il s’agit actuellement d’un réplica secondaire. Les états opérationnels possibles sont comme indiqué dans le tableau ci-dessous.

État opérationnel Description
ONLINE Le réplica secondaire local n'est pas connecté au réplica principal.
FAILED Le réplica secondaire local ne peut pas lire ou écrire à partir du cluster WSFC.
NULL Sur un réplica principal, cette valeur est retournée lorsque la ligne est liée à un réplica secondaire.

autorisations

SQL Server 2019 (15.x) et les versions antérieures nécessitent VIEW SERVER STATE une autorisation sur le serveur.

SQL Server 2022 (16.x) et versions ultérieures nécessitent VIEW SERVER PERFORMANCE STATE une autorisation sur le serveur.