sys.dm_database_replica_states (Azure SQL Database)

S’applique à :base de données Azure SQL Azure SQL Managed Instance

Retourne une ligne pour la base de données, exposant l’état du réplica local.

Important

Selon l'action et les états de niveau supérieur, les informations d'état de la base de données peuvent être non disponibles ou obsolètes. En outre, les valeurs ont uniquement une pertinence locale.

Nom de la colonne Type de données Description (sur le réplica principal)
database_id int Identificateur de la base de données.
group_id uniqueidentifier Identificateur du groupe de disponibilité auquel la base de données appartient.
replica_id uniqueidentifier Identificateur du réplica de disponibilité dans le groupe de disponibilité.
group_database_id uniqueidentifier Identificateur de la base de données dans le groupe de disponibilité. Cet identificateur est identique sur chaque réplica auquel cette base de données est attachée.
is_local bit Si la base de données de disponibilité est locale, une des valeurs suivantes :

0 = La base de données n’est pas locale pour l’instance SQL Server.

1 = La base de données est locale pour l'instance de serveur.
is_primary_replica bit Retourne 1 si le réplica est principal, ou 0 s’il s’agit d’un réplica secondaire dans le groupe de disponibilité auquel appartient la base de données. Cela ne fait pas référence à la base de données primaire ou secondaire dans un groupe de disponibilité distribué ou une relation de géoréplication active.

S’applique à : SQL Server 2014 (12.x) et versions ultérieures.
synchronization_state tinyint État de déplacement des données, l’une des valeurs suivantes.

0 = Non synchronisation. Pour une base de données primaire, indique que la base de données n'est pas prête à synchroniser son journal des transactions avec les bases de données secondaires correspondantes. Pour une base de données secondaire, indique que la base de données n'a pas commencé la synchronisation du journal en raison d'un problème de connexion, est suspendue, ou passe par des états de transition pendant le démarrage ou lors d'un changement de rôle.

1 = Synchronisation. Pour une base de données primaire, indique que la base de données est prête à recevoir une demande d'analyse d'une base de données secondaire. Pour une base de données secondaire, indique qu'un déplacement des données actif a lieu pour la base de données.

2 = Synchronisé. Une base de données primaire affiche SYNCHRONIZED à la place de SYNCHRONIZING. Une base de données secondaire avec validation synchrone affiche Synchronisé lorsque le cache local indique que la base de données est prête pour le basculement et que la synchronisation est en cours.

3 = Rétablissement. Indique la phase dans le processus de restauration lorsqu'une base de données secondaire obtient activement les pages de la base de données primaire.
Attention: Lorsqu’une base de données sur un réplica secondaire est à l’état REVERTING, le fait de forcer le basculement vers le réplica secondaire laisse la base de données dans un état dans lequel elle ne peut pas être démarrée en tant que base de données primaire. La base de données doit se reconnecter comme base de données secondaire, ou vous devez appliquer les nouveaux enregistrements du journal à partir d'une sauvegarde du journal.

4 = Initialisation. Indique la phase de restauration lorsque le journal des transactions requis pour qu'une base de données secondaire rattrape le retard du numéro séquentiel de restauration dans le journal est livré et renforcé sur un réplica secondaire.
Attention: Lorsqu’une base de données sur un réplica secondaire est à l’état INITIALIZING, forcer le basculement vers le réplica secondaire laisse la base de données dans un état dans lequel elle ne peut pas être démarrée en tant que base de données primaire. La base de données doit se reconnecter comme base de données secondaire, ou vous devez appliquer les nouveaux enregistrements du journal à partir d'une sauvegarde du journal.
synchronization_state_desc nvarchar(60) Description de l'état de déplacement des données, un des suivants :

NOT SYNCHRONIZING

SYNCHRONIZING

SYNCHRONIZED

REVERTING

INITIALIZING
is_commit_participant bit 0 = La validation de transaction n'est pas synchronisée par rapport à cette base de données.

1 = La validation de transaction est synchronisée par rapport à cette base de données.

Pour une base de données sur un réplica de disponibilité avec validation asynchrone, cette valeur est toujours de 0.

Pour une base de données sur un réplica de disponibilité avec validation synchrone, cette valeur est exacte uniquement sur la base de données primaire.
synchronization_health tinyint Reflète l’intersection de l’état de synchronisation d’une base de données jointe au groupe de disponibilité sur le réplica de disponibilité et le mode de disponibilité du réplica de disponibilité (mode de validation synchrone ou asynchrone-commit), l’une des valeurs suivantes.

0 = Non sain. La synchronization_state de la base de données est 0 (NON SYNCHRONIZING).

1 = Partiellement sain. Une base de données sur un réplica de disponibilité à validation synchrone est considérée comme partiellement saine si synchronization_state a la valeur 1 (SYNCHRONIZING).

2 = Sain. Une base de données sur un réplica de disponibilité à validation synchrone est considérée comme saine si synchronization_state a la valeur 2 (SYNCHRONIZED), et une base de données sur un réplica de disponibilité à validation asynchrone est considérée comme saine si synchronization_state a la valeur 1 (SYNCHRONIZING).
synchronization_health_desc nvarchar(60) Description de la synchronization_health de la base de données de disponibilité.

NOT_HEALTHY

PARTIALLY_HEALTHY

HEALTHY
database_state tinyint 0 = En ligne

1 = Restauration

2 = Récupération

3 = Récupération en attente

4 = Suspect

5 = Urgence

6 = Hors connexion

Note: Identique à la colonne d’état dans sys.databases.
database_state_desc nvarchar(60) Description du database_state du réplica de disponibilité.

ONLINE

RESTORING

RECOVERING

RECOVERY_PENDING

SUSPECT

EMERGENCY

OFFLINE

Note: Identique à state_desc colonne dans sys.databases.
is_suspended bit État de la base de données, un des suivants :

0 = Reprise

1 = Suspendu
suspend_reason tinyint Si la base de données est suspendue, la raison de l'état suspendu, une des suivantes :

0 = Action de l'utilisateur

1 = Interruption du partenaire

2 = Rétablir

3 = Capturer

4 = Appliquer

5 = Redémarrer

6 = Annuler

7 = Revalidation

8 = Erreur dans le calcul du point de synchronisation du réplica secondaire
suspend_reason_desc nvarchar(60) Description de la raison de l'état d'interruption, une des suivantes :

SUSPEND_FROM_USER = Déplacement des données suspendu manuellement par un utilisateur.

SUSPEND_FROM_PARTNER = Le réplica de base de données est interrompu après un basculement forcé

SUSPEND_FROM_REDO = Une erreur s'est produite pendant la phase de restauration par progression

SUSPEND_FROM_APPLY = Une erreur s'est produite lors de l'écriture du journal dans le fichier (voir le journal des erreurs)

SUSPEND_FROM_CAPTURE = une erreur s'est produite lors de la capture du journal sur le réplica principal

SUSPEND_FROM_RESTART = Le réplica de base de données a été suspendu avant le redémarrage de la base de données (voir le journal des erreurs)

SUSPEND_FROM_UNDO = Une erreur s'est produite pendant la phase de restauration (voir le journal des erreurs)

SUSPEND_FROM_REVALIDATION = Incompatibilité de modification du journal détectée lors de la reconnexion (voir le journal des erreurs)

SUSPEND_FROM_XRF_UPDATE = Impossible de trouver le point de journal commun (voir le journal des erreurs)
recovery_lsn numeric(25,0) Sur le réplica principal, la fin du journal des transactions avant que la base de données primaire n'écrive de nouveaux enregistrements de journal après la récupération ou le basculement. Pour une base de données secondaire donnée, si cette valeur est inférieure au numéro séquentiel dans le journal (NSE) renforcé actuel (last_hardened_lsn), recovery_lsn est la valeur à laquelle cette base de données secondaire doit être resynchronisée (c'est-à-dire, rétablie et réinitialisée). Si cette valeur est supérieure ou égale au numéro séquentiel dans le journal renforcé actuel, la resynchronisation n'est pas nécessaire et ne se produira pas.

recovery_lsn reflète un ID de bloc de journal rempli de zéros. Il ne s'agit pas d'un numéro séquentiel réel dans le journal (LSN).
truncation_lsn numeric(25,0) Sur le réplica principal pour la base de données primaire, reflète la valeur minimale de LSN de troncation de journal sur toutes les bases de données secondaires correspondantes. Si la troncation du journal en local est bloquée (notamment par une opération de sauvegarde), ce LSN peut être supérieur au LSN de troncation en local.

Pour une base de données secondaire donnée, reflète le point de troncation de cette base de données.

truncation_lsn reflète un ID de bloc de journal rempli de zéros. Il ne s'agit pas d'un numéro séquentiel réel dans le journal.
last_sent_lsn numeric(25,0) Identificateur du bloc du journal qui indique le point jusqu'auquel tous les blocs du journal ont été envoyés par la base de données primaire. ID du bloc suivant de journal qui sera envoyé, plutôt que l'ID du bloc de journal le plus récemment envoyé.

last_sent_lsn reflète un ID de bloc de journal rempli de zéros, il ne s’agit pas d’un numéro de séquence de journal réel.
last_sent_time datetime Heure à laquelle le dernier bloc du journal a été envoyé.
last_received_lsn numeric(25,0) ID de bloc du journal qui identifie le point jusqu'auquel tous les blocs du journal ont été reçus par le réplica secondaire qui héberge cette base de données secondaire.

last_received_lsn reflète un ID de bloc de journal rempli de zéros. Il ne s'agit pas d'un numéro séquentiel réel dans le journal.
last_received_time datetime Heure à laquelle l'ID de bloc de journal du dernier message reçu a été lu sur le réplica secondaire.
last_hardened_lsn numeric(25,0) Début du bloc de journal contenant les enregistrements de journal du LSN de dernière sécurisation renforcée sur une base de données secondaire.

Sur une base de données primaire avec validation asynchrone ou sur une base de données avec validation synchrone dont la stratégie actuelle est « delay », la valeur est NULL. Pour les autres bases de données primaires à validation synchrone, last_hardened_lsn indique le minimum du LSN renforcé sur toutes les bases de données secondaires.

Remarque : last_hardened_lsn reflète un ID de bloc de journal rempli de zéros. Il ne s'agit pas d'un numéro séquentiel réel dans le journal.
last_hardened_time datetime Sur une base de données secondaire, heure de l’identificateur de bloc de journal pour le dernier LSN renforcé (last_hardened_lsn). Sur une base de données primaire, reflète l'heure correspondant à la valeur minimale de LSN renforcé.
last_redone_lsn numeric(25,0) Numéro séquentiel dans le journal réel du dernier enregistrement du journal qui a été restauré sur la base de données secondaire. last_redone_lsn est toujours inférieur à last_hardened_lsn.
last_redone_time datetime Heure à laquelle le dernier enregistrement du journal a été restauré sur la base de données secondaire.
log_send_queue_size bigint Quantité d'enregistrements du journal dans la base de données primaire, en kilo-octets (Ko), qui n'a pas encore été envoyée aux bases de données secondaires.
log_send_rate bigint Taux moyen auquel l’instance de réplica principale a envoyé des données au cours de la dernière période active, en kilo-octets (Ko)/seconde.
redo_queue_size bigint Quantité d'enregistrements du journal dans les fichiers journaux du réplica secondaire qui n'a pas encore été réexécutée, en kilo-octets (Ko).
redo_rate bigint Taux moyen auquel les enregistrements de journal sont refaits sur une base de données secondaire donnée, en kilo-octets (Ko)/seconde.
filestream_send_rate bigint Fréquence à laquelle les fichiers FILESTREAM sont envoyés sur le réplica secondaire en kilo-octets/seconde.
end_of_log_lsn numeric(25,0) LSN de fin de journal local. Numéro séquentiel réel dans le journal correspondant au dernier enregistrement du journal dans le cache du journal sur les bases de données primaire et secondaire. Sur le réplica principal, les lignes secondaires reflètent le LSN de fin de journal, depuis les derniers messages de progression que les réplicas secondaires ont envoyés au réplica principal.

end_of_log_lsn reflète un ID de bloc de journal rempli de zéros. Il ne s'agit pas d'un numéro séquentiel réel dans le journal.
last_commit_lsn numeric(25,0) Numéro séquentiel réel dans le journal correspondant au dernier enregistrement de validation dans le journal des transactions.

Sur la base de données primaire, cet argument correspond au dernier enregistrement de validation traité. Les lignes des bases de données secondaires indiquent le numéro séquentiel dans le journal que le réplica secondaire a envoyé au réplica principal.

Sur le réplica secondaire, il s'agit du dernier enregistrement de validation qui a été restauré.
last_commit_time datetime Heure correspondant au dernier enregistrement de validation.

Sur la base de données secondaire, cette heure est la même que dans la base de données primaire.

Sur le réplica principal, chaque ligne de base de données secondaire indique l'heure que le réplica secondaire qui héberge la base de données secondaire a signalé au réplica principal. La différence de temps entre la ligne de base de données primaire et une ligne de base de données secondaire donnée représente approximativement l’objectif de point de récupération (RPO), en supposant que le processus de restauration est rattrapé et que la progression a été signalée au réplica principal par le réplica secondaire.
low_water_mark_for_ghosts bigint Nombre à croissance monotone pour la base de données, qui indique une limite inférieure utilisée par la tâche de nettoyage des enregistrements fantômes sur la base de données primaire. Si ce nombre n'augmente pas avec le temps, cela implique que le nettoyage des enregistrements fantômes ne se produit pas. Pour déterminer quelles lignes fantômes nettoyer, le réplica principal utilise la valeur minimale de cette colonne pour cette base de données sur tous les réplicas de disponibilité (y compris le réplica principal).
secondary_lag_seconds bigint Nombre de secondes pendant lesquelles le réplica secondaire se trouve derrière le réplica principal pendant la synchronisation.

S’applique à : SQL Server 2016 (13.x) et versions plus récentes.
quorum_commit_lsn numeric(25,0) Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
quorum_commit_time datetime Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

Autorisations

Requiert l'autorisation VIEW DATABASE STATE sur la base de données.

Voir aussi