sys.dm_hadr_database_replica_states (Transact-SQL)
Retorna uma linha para cada banco de dados que está participando de um grupo de disponibilidade AlwaysOn para o qual a instância local do SQL Server hospeda uma réplica de disponibilidade. Essa exibição de gerenciamento dinâmico expõe informações de estado nas réplicas primárias e secundárias. Em uma réplica secundária, essa exibição retorna uma linha para cada banco de dados secundário na instância do servidor. Na réplica primária, essa exibição retorna uma linha para cada banco de dados primário e uma linha adicional para o banco de dados secundário correspondente.
Importante |
---|
Dependendo da ação dos estados de nível mais alto, as informações de estado do banco de dados podem estar indisponíveis ou desatualizadas. Além disso, os valores têm relevância local apenas. Por exemplo, na réplica primária, o valor da coluna last_hardened_lsn reflete as informações sobre um determinado banco de dados secundário que está atualmente disponível na réplica primária, não o valor do LSN protegido real que a réplica secundária talvez tenha no momento. |
Nome da coluna |
Tipo de dados |
Descrição (sobre a réplica primária) |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
database_id |
int |
O identificador do banco de dados, exclusivo em uma instância do SQL Server. Esse é o mesmo valor exibido na exibição do catálogo sys.databases. |
||||||||||||||||
group_id |
uniqueidentifier |
O identificador do grupo de disponibilidade ao qual o banco de dados pertence. |
||||||||||||||||
replica_id |
uniqueidentifier |
O identificador da réplica de disponibilidade dentro do grupo de disponibilidade. |
||||||||||||||||
group_database_id |
uniqueidentifier |
O identificador do banco de dados dentro do grupo de disponibilidade. Esse identificador é idêntico em cada réplica à qual este banco de dados é unido. |
||||||||||||||||
is_local |
bit |
Se o banco de dados de disponibilidade é local, um dos seguintes: 0 = O banco de dados não é local para a instância do SQL Server. 1 = O banco de dados é local para a instância do servidor. |
||||||||||||||||
synchronization_state |
tinyint |
O estado da movimentação de dados, um dos seguintes:
|
||||||||||||||||
synchronization_state_desc |
nvarchar(60) |
Descrição do estado da movimentação de dados, um dos seguintes: NOT SYNCHRONIZING SYNCHRONIZING SYNCHRONIZED REVERTING INITIALIZING |
||||||||||||||||
is_commit_participant |
bit |
0 = A confirmação da transação não está sincronizada em relação a este banco de dados. 1 = A confirmação da transação está sincronizada em relação a este banco de dados. Para um banco de dados em uma réplica de disponibilidade de confirmação assíncrona, este valor é sempre 0. Para um banco de dados em uma réplica de disponibilidade de confirmação síncrona, este valor é preciso somente no banco de dados primário. |
||||||||||||||||
synchronization_health |
tinyint |
Reflete a interseção do estado de sincronização de um banco de dados que é unido ao grupo de disponibilidade na réplica de disponibilidade e o modo de disponibilidade da réplica de disponibilidade (confirmação síncrona ou modo de confirmação assíncrona), um de:
|
||||||||||||||||
synchronization_health_desc |
nvarchar(60) |
Descrição do synchronization_health do banco de dados de disponibilidade. NOT_HEALTHY PARTIALLY_HEALTHY HEALTHY |
||||||||||||||||
database_state |
tinyint |
0 = Online 1 = Restaurando 2 = Recuperando 3 = Recuperação pendente 4 = Suspeito 5 = Emergência 6 = Offline
|
||||||||||||||||
database_state_desc |
nvarchar(60) |
Descrição do database_state da réplica de disponibilidade. ONLINE RESTORING RECOVERING RECOVERY_PENDING SUSPECT EMERGENCY OFFLINE
|
||||||||||||||||
is_suspended |
bit |
Estado do banco de dados, um dos seguintes: 0 - Retomado 1 = Suspenso |
||||||||||||||||
suspend_reason |
tinyint |
Se o banco de dados estiver suspenso, o motivo do estado de suspensão, um dos seguintes: 0 = Ação do usuário 1 = Suspensão do parceiro 2 = Refazer 3 = Capturar 4 = Aplicar 5 = Reiniciar 6 = Desfazer 7 = Revalidação 8 = Erro no cálculo do ponto de sincronização da réplica secundária |
||||||||||||||||
suspend_reason_desc |
nvarchar(60) |
Descrição do motivo do estado da suspensão do banco de dados, um dos seguintes: SUSPEND_FROM_USER = Uma movimentação de dados suspensa manualmente pelo usuário SUSPEND_FROM_PARTNER = A réplica de banco de dados é suspensa após um failover forçado SUSPEND_FROM_REDO = Erro durante a fase refazer SUSPEND_FROM_APPLY = Erro ao gravar o log em arquivo (consulte o log de erros) SUSPEND_FROM_CAPTURE = Erro ao capturar o log na réplica primária SUSPEND_FROM_RESTART = A réplica de banco de dados foi suspensa antes de o banco de dados ser reiniciado (consulte o log de erros) SUSPEND_FROM_UNDO = Erro durante a fase desfazer (consulte o log de erros) SUSPEND_FROM_REVALIDATION = Incompatibilidade de alterações do log detectada na reconexão (consulte o log de erros) SUSPEND_FROM_XRF_UPDATE = Não é possível localizar o ponto de log comum (consulte o log de erros) |
||||||||||||||||
recovery_lsn |
numeric(25,0) |
Na réplica primária, o final do log de transações antes de o banco de dados primário gravar outro novo registro de log depois da recuperação ou do failover. Para um determinado banco de dados secundário, se este valor for menor que o LSN protegido atual (last_hardened_lsn), recovery_lsn será o valor para o qual este banco de dados secundário precisaria ressincronizar (ou seja, reverter e reinicializar). Se este valor for maior que ou igual ao LSN protegido atual, a ressincronização será desnecessária e não ocorrerá. recovery_lsn reflete uma ID de bloco de log preenchida com zeros. Não é um LSN (número de sequência de log) real. Para obter informações sobre como esse valor é derivado, consulte Compreendendo os valores da coluna LSN, posteriormente neste tópico. |
||||||||||||||||
truncation_lsn |
numeric(25,0) |
Na réplica primária, para o banco de dados primário, reflete o LSN de truncamento de log mínimo em todos os bancos de dados secundários correspondentes. Se o truncamento de log local estiver bloqueado (como por uma operação de backup), esse LSN poderá ser mais alto que o LSN de truncamento local. Para um determinado banco de dados secundário, reflete o ponto de truncamento desse banco de dados. truncation_lsn reflete a ID de bloco de log preenchida com zeros. Não é um número de sequência de log real. |
||||||||||||||||
last_sent_lsn |
numeric(25,0) |
O identificador do bloco de log que indica o ponto até o qual todos os blocos de log foram enviados pela primária. Esta é a ID do próximo bloco de log que será enviado, em vez da ID do bloco de log enviado mais recentemente. last_sent_lsn reflete uma ID de bloco de log preenchida com zeros, não é um número de sequência de log real. |
||||||||||||||||
last_sent_time |
datetime |
A hora em que o último bloco de log foi enviado. |
||||||||||||||||
last_received_lsn |
numeric(25,0) |
Id de bloco de log que identifica o ponto até o qual todos os blocos de log foram recebidos pela réplica secundária que hospeda este banco de dados secundário. last_received_lsn reflete uma ID de bloco de log preenchida com zeros. Não é um número de sequência de log real. |
||||||||||||||||
last_received_time |
datetime |
A hora em que a ID do bloco de log na última mensagem recebida foi lido na réplica secundária. |
||||||||||||||||
last_hardened_lsn |
numeric(25,0) |
Início do Bloco de Log que contém os registros de log do último LSN de proteção em um banco de dados secundário. Em um banco de dados primário de confirmação assíncrona ou em um banco de dados de confirmação síncrona cuja política atual é "atraso", o valor é o NULL. Para outros bancos de dados primários de confirmação síncrona, last_hardened_lsn indica o mínimo do LSN de proteção em todos os bancos de dados secundários.
|
||||||||||||||||
last_hardened_time |
datetime |
Em um banco de dados secundário, a hora do identificador do bloco de log para o último LSN protegido (last_hardened_lsn). Em um banco de dados primário, reflete a hora que corresponde ao LSN de proteção mínimo. |
||||||||||||||||
last_redone_lsn |
numeric(25,0) |
O número de sequência de log real do último registro de log que foi desfeito no banco de dados secundário. last_redone_lsn sempre é menor que last_hardened_lsn. |
||||||||||||||||
last_redone_time |
datetime |
A hora em que o último registro de log foi refeito no banco de dados secundário. |
||||||||||||||||
log_send_queue_size |
bigint |
Quantidade de registros de log do banco de dados primário que não foram enviados aos bancos de dados secundários, em KB (kilobytes). |
||||||||||||||||
log_send_rate |
bigint |
A taxa na qual os registros de log estão sendo enviados aos bancos de dados secundários, em KB/segundo. |
||||||||||||||||
redo_queue_size |
bigint |
A quantidade de registros de log nos arquivos de log da réplica secundária que ainda não foram refeitos, em KB. |
||||||||||||||||
redo_rate |
bigint |
A taxa na qual os registros de log estão sendo refeitos em um banco de dados secundário, em KB/segundo. |
||||||||||||||||
filestream_send_rate |
bigint |
A taxa na qual os arquivos FILESTREAM são enviados à réplica secundária, em KB/segundo. |
||||||||||||||||
end_of_log_lsn |
numeric(25,0) |
O fim do log do LSN local. O LSN real que corresponde ao último registro de log no cache de log nos bancos de dados primário e secundário. Na réplica primária, as linhas secundárias refletem o fim do log do LSN das mensagens de progresso mais recentes que as réplicas secundárias enviaram à réplica primária. end_of_log_lsn reflete uma ID de bloco de log preenchida com zeros. Não é um número de sequência de log real. Para obter mais informações, consulte Compreendendo os valores da coluna LSN, posteriormente neste tópico. |
||||||||||||||||
last_commit_lsn |
Numeric(25,0) |
O número de sequência de log real que corresponde ao último registro de confirmação no log de transações. No banco de dados primário, corresponde ao último registro de confirmação processado. As linhas para bancos de dados secundários mostram o número de sequência de log que a réplica secundária enviou para a primária. Na réplica secundária, é o último registro de confirmação refeito. |
||||||||||||||||
last_commit_time |
datetime |
A hora correspondente ao último registro de confirmação. No banco de dados secundário, essa hora é a mesma do banco de dados primário. Na réplica primária, cada linha de banco de dados secundário exibe a hora em que a réplica secundária que hospeda aquele banco de dados secundário relatou de volta para a réplica primária. A diferença de tempo entre a linha do banco de dados primário e a linha de um determinado banco de dados secundário representa aproximadamente o RPO (objetivo de tempo de recuperação), supondo-se que o processo de refazer é alcançado e que o progresso foi relatado de volta para a réplica primária pela réplica secundária. |
||||||||||||||||
low_water_mark_for_ghosts |
bigint |
Um número aumentado de maneira constante para o banco de dados, que indica uma marca d'água inferior usada pela limpeza de fantasma no banco de dados primário. Se esse número não estiver aumentando ao longo do tempo, isso indicará que a limpeza fantasma talvez não esteja ocorrendo. Para decidir quais linhas fantasmas devem ser limpas, a réplica primária usa o valor mínimo dessa coluna para este banco de dados em todas as réplicas de disponibilidade (inclusive a réplica primária). |
Compreendendo os valores da coluna LSN
Os valores das colunas end_of_log_lsn, last_hardened_lsn, last_received_lsn, last_sent_lsn, recovery_lsn e truncation_lsn não são LSNs (números de sequência de log) reais. Em vez disso, cada um desses valores reflete uma ID de bloco de log preenchida com zeros.
end_of_log_lsn, last_hardened_lsn e recovery_lsn são LSNs de liberação. Por exemplo, last_hardened_lsn indica o início do próximo bloco além dos blocos que já estão no disco. Portanto, qualquer LSN < o valor de last_hardened_lsn está no disco. O LSN que for >= a esse valor não será liberado.
Dos valores de LSN retornados por sys.dm_hadr_database_replica_states, somente last_redone_lsn é um LSN real.
Segurança
Permissões
Requer a permissão VIEW SERVER STATE no servidor.