sys.dm_hadr_database_replica_states (Transact-SQL)
Devuelve una fila por cada base de datos que participa en un grupo de disponibilidad AlwaysOn para el que la instancia local de SQL Server hospeda una réplica de disponibilidad. Esta vista de administración dinámica expone información de estado en las réplicas principal y secundaria. En una réplica secundaria, esta vista devuelve una fila por cada base de datos secundaria de la instancia de servidor. En la réplica principal, esta vista devuelve una fila por cada base de datos principal y una fila adicional para la base de datos secundaria correspondiente.
Importante |
---|
Dependiendo de la acción y los estados de nivel superior, la información del estado de la base de datos puede no estar disponible u obsoleta. Además, los valores solo tienen relevancia local. Por ejemplo, en la réplica principal, el valor de la columna last_hardened_lsn refleja la información sobre una base de datos secundaria dada actualmente disponible para la réplica principal, no el valor de LSN protegido real que la réplica secundaria puede tener actualmente. |
Nombre de columna |
Tipo de datos |
Descripción (en la réplica principal) |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
database_id |
int |
Identificador de la base de datos, único en una instancia de SQL Server. Es el mismo valor que el que se muestra en la vista de catálogo sys.databases. |
||||||||||||||||
group_id |
uniqueidentifier |
Identificador del grupo de disponibilidad al que pertenece la base de datos. |
||||||||||||||||
replica_id |
uniqueidentifier |
Identificador de la réplica de disponibilidad dentro del grupo de disponibilidad. |
||||||||||||||||
group_database_id |
uniqueidentifier |
Identificador de la base de datos dentro del grupo de disponibilidad. Este identificador es idéntico en cada réplica al que está unido esta base de datos. |
||||||||||||||||
is_local |
bit |
Si la base de datos de disponibilidad es local, uno de los siguientes: 0 = La base de datos no es local en la instancia de SQL Server. 1 = La base de datos es local en la instancia de servidor. |
||||||||||||||||
synchronization_state |
tinyint |
Estado de movimiento de datos, uno de los siguientes:
|
||||||||||||||||
synchronization_state_desc |
nvarchar(60) |
Descripción del estado de movimiento de datos, uno de los siguientes: NOT SYNCHRONIZING SYNCHRONIZING SYNCHRONIZED REVERTING INITIALIZING |
||||||||||||||||
is_commit_participant |
bit |
0 = La confirmación de la transacción no está sincronizada con respecto a esta base de datos. 1 = La confirmación de la transacción está sincronizada con respecto a esta base de datos. Para una base de datos de una réplica de disponibilidad de confirmación asincrónica, este valor siempre es 0. Para una base de datos en una replicación de disponibilidad de confirmación sincrónica, este valor es preciso solo en la base de datos principal. |
||||||||||||||||
synchronization_health |
tinyint |
Refleja la intersección del estado de sincronización de una base de datos unida al grupo de disponibilidad en la réplica de disponibilidad y el modo de disponibilidad de la réplica de disponibilidad (modo de confirmación sincrónica o asincrónica), uno de los valores siguientes:
|
||||||||||||||||
synchronization_health_desc |
nvarchar(60) |
Descripción del synchronization_health de la base de datos de disponibilidad. NOT_HEALTHY PARTIALLY_HEALTHY HEALTHY |
||||||||||||||||
database_state |
tinyint |
0 = En línea 1 = Restaurándose 2 = En recuperación 3 = Recuperación pendiente 4 = Sospechosa 5 = Emergencia 6 = Sin conexión
|
||||||||||||||||
database_state_desc |
nvarchar(60) |
Descripción del database_state de la réplica de disponibilidad. ONLINE RESTORING RECOVERING RECOVERY_PENDING SUSPECT EMERGENCY OFFLINE
|
||||||||||||||||
is_suspended |
bit |
Estado de la base de datos, uno de los siguientes: 0 = Reanudada 1 = Suspendida |
||||||||||||||||
suspend_reason |
tinyint |
Si la base de datos está suspendida, el motivo de este estado; uno de los siguientes: 0 = Acción del usuario 1 = Suspender desde el asociado 2 = Rehacer 3 = Captura 4 = Aplicar 5 = Reiniciar 6 = Deshacer 7 = Revalidación 8 = Error en el cálculo del punto de sincronización de la réplica secundaria. |
||||||||||||||||
suspend_reason_desc |
nvarchar(60) |
Descripción del motivo del estado suspendido de la base de datos, uno de los siguientes: SUSPEND_FROM_USER = un usuario suspendió manualmente el movimiento de datos SUSPEND_FROM_PARTNER = la réplica de base de datos se suspendió tras una conmutación por error forzada SUSPEND_FROM_REDO = error durante la fase de puesta al día SUSPEND_FROM_APPLY = error al escribir el registro en el archivo (ver el registro de errores) SUSPEND_FROM_CAPTURE = error al capturar el registro en la réplica principal SUSPEND_FROM_RESTART = la réplica de base de datos se suspendió antes de que la base de datos se reiniciara (ver el registro de errores) SUSPEND_FROM_UNDO = error durante la fase de reversión (ver registro de errores) SUSPEND_FROM_REVALIDATION = discrepancia de cambio de registro detectada durante la reconexión (ver registro de errores) SUSPEND_FROM_XRF_UPDATE = no se pudo encontrar el punto de registro común (ver registro de errores) |
||||||||||||||||
recovery_lsn |
numeric(25,0) |
En la réplica principal, el final del registro de transacciones antes de que la base de datos principal escriba nuevas entradas de registro después de la recuperación o la conmutación por error. Para una base de datos secundaria, si este valor es menor que el LSN reforzado actual (last_hardened_lsn), el recovery_lsn es el valor con el que esta base de datos secundaria necesitaría volver a sincronizar (es decir, revertir y reinicializar). Si este valor es mayor o igual que el LSN reforzado actual, sería innecesaria una resincronización y no se produciría. recovery_lsn refleja un identificador de bloque de registro rellenado con ceros. No es un número de secuencia de registro (LSN) real. Para obtener información sobre cómo se deriva este valor, vea Descripción de los valores de columna LSN, más adelante en este tema. |
||||||||||||||||
truncation_lsn |
numeric(25,0) |
En la réplica principal, para la base de datos principal, refleja el LSN de truncamiento del registro mínimo a través de todas las bases de datos secundarias correspondientes. Si el truncamiento de registro local está bloqueado (como mediante una operación de copia de seguridad), este LSN podría ser mayor que el LSN de truncamiento local. En una base de datos secundaria dada, refleja el punto de truncamiento de esa base de datos. truncation_lsn refleja un identificador de bloque de registro rellenado con ceros. No es un número de secuencia de registro real. |
||||||||||||||||
last_sent_lsn |
numeric(25,0) |
El identificador de bloque de registro que indica el punto en el que todos los bloques de registro han sido enviados por el elemento principal. Es el identificador del bloque de registro siguiente que se enviará, en lugar del identificador del bloque de registro enviado más recientemente. last_sent_lsn refleja un identificador de bloque de registro rellenado con ceros. No es un número de secuencia de registro real. |
||||||||||||||||
last_sent_time |
datetime |
Hora en que se envió el último bloque de registro. |
||||||||||||||||
last_received_lsn |
numeric(25,0) |
Identificador de bloque de registro que identifica el punto en el que todos los bloques de registro han sido recibidor por la réplica secundaria que hospeda esta base de datos secundaria. last_received_lsn refleja un identificador de bloque de registro rellenado con ceros. No es un número de secuencia de registro real. |
||||||||||||||||
last_received_time |
datetime |
Hora en que el identificador de bloque de registro del último mensaje recibido se leyó en la réplica secundaria. |
||||||||||||||||
last_hardened_lsn |
numeric(25,0) |
Inicio del bloque de registro que contiene los registros del último LSN reforzado en una base de datos secundaria. En una base de datos principal de confirmación asincrónica o en una base de datos de confirmación sincrónica cuya directiva actual sea "retrasar", el valor es NULL. En otras bases de datos principales de confirmación sincrónica, last_hardened_lsn indica el mínimo del LSN reforzado a través de todas las bases de datos secundarias.
|
||||||||||||||||
last_hardened_time |
datetime |
En una base de datos secundaria, hora del identificador de bloque de registro para el último LSN protegido (last_hardened_lsn). En una base de datos principal, refleja la hora que corresponde al LSN reforzado mínimo. |
||||||||||||||||
last_redone_lsn |
numeric(25,0) |
El número de secuencia de registro real de la última entrada de registro que se rehízo en la base de datos secundaria. last_redone_lsn siempre es menor que last_hardened_lsn. |
||||||||||||||||
last_redone_time |
datetime |
Hora en que la última entrada de registro se rehízo en la base de datos secundaria. |
||||||||||||||||
log_send_queue_size |
bigint |
Cantidad de entradas de registro de la base de datos principal que no se han enviado a las bases de datos secundarias, en kilobytes (kB). |
||||||||||||||||
log_send_rate |
bigint |
Velocidad a la que las entradas de registro se envían a las bases de datos secundarias, en kilobytes (kB)/segundo. |
||||||||||||||||
redo_queue_size |
bigint |
Cantidad de entradas de registro en los archivos de registro de la réplica secundaria que no se han rehecho todavía, en kilobytes (KB). |
||||||||||||||||
redo_rate |
bigint |
Velocidad a la que las entradas de registro se rehacen en una base de dato secundaria, en kilobytes (kB)/segundo. |
||||||||||||||||
filestream_send_rate |
bigint |
Velocidad a la que los archivos FILESTREAM se envían a la réplica secundaria, en kilobytes (KB)/segundo. |
||||||||||||||||
end_of_log_lsn |
numeric(25,0) |
Fin local del LSN de registro. LSN actual correspondiente a la última entrada de registro en la memoria caché del registro en las bases de datos principal y secundaria. En la réplica principal, las filas secundarias reflejan el final del LSN de registro de los mensajes de progreso más recientes que las réplicas secundarias han enviado a la principal. end_of_log_lsn refleja un identificador de bloque de registro rellenado con ceros. No es un número de secuencia de registro real. Para obtener más información, vea Descripción de los valores de columna LSN, más adelante en este tema. |
||||||||||||||||
last_commit_lsn |
Numeric(25,0) |
Número de secuencia de registro real correspondiente al último registro de confirmación del registro de transacciones. En la base de datos principal, corresponde al último registro de confirmación procesado. Las filas para las bases de datos secundarias muestran el número de secuencia de registro que la réplica secundaria ha enviado a la principal. En la réplica secundaria, es el último registro de confirmación que se rehízo. |
||||||||||||||||
last_commit_time |
datetime |
Hora correspondiente al último registro de confirmación. En la base de datos secundaria, esta hora es igual la misma que para la base de datos principal. En la réplica principal, cada fila de la base de datos secundaria muestra la hora que la réplica secundaria que hospeda dicha base de datos secundaria ha notificado a la réplica principal. La diferencia de la hora entre la fila de la base de datos principal y una fila determinada de la base de datos secundaria representa aproximadamente el objetivo de tiempo de recuperación (RPO), suponiendo que el proceso de rehacer está puesto al día y que la réplica secundaria ha notificado el progreso a la réplica principal. |
||||||||||||||||
low_water_mark_for_ghosts |
bigint |
Un número que aumenta regularmente para la base de datos que indica una marca de límite inferior utilizada por la limpieza de registros fantasma en la base de datos principal. Si este número no aumenta con el tiempo, implica que no puede producirse la limpieza de registros fantasma. Para decidir qué filas fantasma se han de limpiar, la réplica principal utiliza el valor mínimo de esta columna para esta base de datos en todas las réplicas de disponibilidad (incluida la réplica principal). |
Descripción de los valores de columna LSN
Los valores de las columnas end_of_log_lsn, last_hardened_lsn, last_received_lsn, last_sent_lsn, recovery_lsn y truncation_lsn no son números de secuencia de registro (LSN) reales. En su lugar, cada uno de estos valores refleja un identificador de bloque de registro rellenado con ceros.
end_of_log_lsn, last_hardened_lsn y recovery_lsn son LSN de vaciado. Por ejemplo, last_hardened_lsn indica el inicio del bloque siguiente que se encuentra más allá de los bloques que ya están en el disco. En los LSN <, el valor de last_hardened_lsn está en el disco. El LSN que es >= este valor no se vacía.
De los valores de LSN devueltos por sys.dm_hadr_database_replica_states, solo last_redone_lsn es un LSN real.
Seguridad
Permisos
Necesita el permiso VIEW SERVER STATE en el servidor.