Partilhar via


Monitorando status de espelhamento

Para configurar e gerenciar monitoramento para um ou mais dos bancos de dados espelhados em uma instância do servidor, você pode usar o Monitor de Espelhamento de Banco de Dados ou os procedimentos armazenados do sistema dbmmonitor. É possível monitorar um banco de dados espelho durante uma sessão de espelhamento para verificar se e como os dados estão fluindo.

O monitoramento de um banco de dados espelho lhe permite, especificamente:

  • Verificar se o espelhamento está funcionando.

    O status básico inclui saber se as duas instâncias do servidor estão ativas, os servidores estão conectados, e se o log está sendo movimentado do principal para o espelhado.

  • Determinar se o banco de dados espelho está acompanhando o banco de dados principal.

    Durante o modo de alto desempenho, um servidor principal pode desenvolver um acúmulo de registros de log não enviados que ainda precisam ser enviados do servidor principal para o servidor espelho. Além disso, em qualquer modo operacional, o servidor espelho pode desenvolver um acúmulo de registros de log não restaurado que foram gravados no arquivo de log mas que ainda precisam ser restaurados no banco de dados espelho.

  • Determinar quantos dados serão perdidos quando a instância de servidor principal ficar indisponível durante o modo de alto desempenho.

    Você pode determinar perda de dados verificando a quantidade de log de transações não enviada (se houver) e o intervalo de tempo nos quais as transações perdidas foram confirmadas no servidor principal.

  • Comparar o desempenho atual com o desempenho passado.

    No caso de problemas, um administrador de banco de dados pode exibir um histórico do desempenho de espelhamento para ajudar na compreensão do estado atual. A verificação do histórico pode permitir ao usuário detectar tendências em desempenho, identificando padrões de problemas de desempenho (como horas do dia em que a rede está lenta ou que o número de comandos que entram no log é muito grande).

  • Diagnosticar a causa de fluxo reduzido de dados entre parceiros de espelhamento.

  • Definir limites de aviso em métrica chave de desempenho.

    Se uma nova linha de status contém um valor que excede um limite, um evento informativo é enviado ao log de eventos do Windows. Um administrador de sistema pode, então, configurar alertas manualmente com base nesses eventos. Para obter mais informações, consulte Usando limites de aviso e alertas em métricas de desempenho de espelhamento.

Ferramentas para monitoramento de status de espelhamento de banco de dados

O status de espelhamento pode ser monitorado usando-se o Monitor de Espelhamento de Banco de Dados ou o procedimento armazenado do sistema sp_dbmmonitorresults. Essas ferramentas podem ser usadas para monitorar espelhamento de banco de dados em qualquer banco de dados espelho na instância do servidor local, através de ambos os administradores de sistema, ou seja, membros da função de servidor fixa sysadmin e usuário que foi adicionado à função do banco de dados fixa dbm_monitor no banco de dados msdb por um administrador de sistema. Ao usar qualquer uma das ferramentas, um administrador de sistema pode atualizar manualmente o status de espelhamento.

ObservaçãoObservação

Administradores de sistema podem também configurar e exibir limites de aviso para métricas de desempenho chave. Para obter mais informações, consulte Usando limites de aviso e alertas em métricas de desempenho de espelhamento.

  • Monitor de Espelhamento de Banco de Dados

    O Monitor de Espelhamento de Banco de Dados é uma ferramenta de interface gráfica do usuário que permite aos administradores de sistema exibir e atualizar status e configurar limites de aviso em várias métricas de desempenho chave. O Monitor de Espelhamento de Banco de Dados também pode ser usado por membros da função fixa do banco de dados dbm_monitor para exibir a linha mais recente da tabela de status de espelhamento, embora não seja possível atualizar o status da tabela.

    O monitor exibe o status, inclusive a métrica de desempenho, para um banco de dados selecionado na página com guias Status. O conteúdo dessa página provém das instâncias do servidor principal e espelho. A página é preenchida fora de sincronia à medida que o status é reunido através de conexões separadas para as instâncias do servidor principal e espelho. O monitor tenta atualizar a tabela de status a intervalos de 30 segundos. A atualização só terá sucesso se a tabela não for atualizada dentro de 15 segundos e o usuário for um membro da função de servidor fixa sysadmin. Para obter um resumo das informações relatadas na página Status, consulte Status exibido pelo Monitor de Espelhamento de Banco de Dados, posteriormente neste tópico.

    Para uma introdução à interface do Monitor de Espelhamento de Banco de Dados, consulte Visão geral do Monitor de Espelhamento de Banco de Dados. Para obter informações sobre como iniciar o Monitor de Espelhamento de Banco de Dados, consulte Como iniciar o Monitor de Espelhamento de Banco de Dados.

  • Procedimentos armazenados do sistema

    Também é possível recuperar ou atualizar o status atual executando o procedimento armazenado do sistema sp_dbmmonitorresults. Outros procedimentos armazenados de dbmmonitor lhe permitem definir o monitoramento, alterar os parâmetros de monitoramento, exibir o período de atualização atual e ignorar monitoramento na instância do servidor.

    A tabela a seguir apresenta os procedimentos armazenados para administrar e usar o monitoramento de espelhamento de banco de dados independentemente do Monitor de Espelhamento de Banco de Dados.

    Procedimentos

    Descrição

    sp_dbmmonitoraddmonitoring

    Cria uma tarefa que atualiza periodicamente as informações de status para cada banco de dados espelho na instância do servidor.

    sp_dbmmonitorchangemonitoring

    Altera o valor de um parâmetro de monitoramento de espelhamento de banco de dados.

    sp_dbmmonitorhelpmonitoring

    Retorna o período de atualização atual.

    sp_dbmmonitorresults

    Retorna linhas de status para um banco de dados monitorado e lhe permite escolher se o procedimento obtém o último status antecipadamente.

    sp_dbmmonitordropmonitoring

    Interrompe e exclui o trabalho de monitoramento de espelhamento para todos os bancos de dados na instância de servidor.

    Os procedimentos armazenados do sistema dbmmonitor podem ser usados como complemento do Monitor de Espelhamento de Banco de Dados. Por exemplo, mesmo que o monitoramento tenha sido configurado usando o sp_dbmmonitoraddmonitoring, o Monitor de Espelhamento de Banco de Dados poderá ser usado para exibir o status.

Como monitorar trabalhos

Essa seção apresenta a tabela de status de espelhamento de banco de dados, o trabalho de monitor de espelhamento de banco de dados e o monitor, como os usuários podem monitorar o status de espelhamento de banco de dados e como o trabalho de monitoramento pode ser descartado.

Tabela de status de espelhamento de banco de dados

O status de espelhamento de banco de dados é armazenado em uma tabela de status de espelhamento de banco de dados interna, não documentada, no banco de dados msdb. Essa tabela de status é criada automaticamente na primeira vez em que o status de espelhamento é atualizado na instância de servidor.

A tabela de status pode ser atualizada automática ou manualmente por um administrador de sistema, com um intervalo de atualização mínimo de 15 segundos. O mínimo de 15 segundos evita que instâncias de servidor sejam sobrecarregadas com solicitações de status.

A tabela de status é automaticamente atualizada tanto pelo Monitor de Espelhamento de Banco de Dados quanto pelo trabalho de monitor de espelhamento de banco de dados, se estiverem sendo executados. Trabalho de Monitor de Espelhamento de Banco de Dados atualiza a tabela a cada minuto, por padrão (um administrador de sistema pode especificar um período de atualização de 1 a 120 minutos). O Monitor de Espelhamento de Banco de Dados, ao contrário, atualiza a tabela automaticamente a cada 30 segundos. Para essas atualizações, o Trabalho de Monitor de Espelhamento de Banco de Dados e o Monitor de Espelhamento de Banco de Dados chamam sp_dbmmonitorupdate.

A primeira vez que o sp_dbmmonitorupdate é executado, ele cria a tabela de status de espelhamento de banco de dados e a função de banco de dados fixa dbm_monitor no banco de dados msdb. sp_dbmmonitorupdate normalmente atualiza o status de espelhamento inserindo uma linha nova na tabela de status para cada banco de dados espelho na instância de servidor. Para obter mais informações, consulte a "Tabela de Status de Espelhamento de Banco de Dados", mais adiante neste tópico. Esse procedimento também avalia a métrica de desempenho nas linhas novas e faz o truncamento de linhas mais antigas do que o período de retenção atual (o padrão é 7 dias). Para obter mais informações, consulte sp_dbmmonitorupdate (Transact-SQL).

ObservaçãoObservação

A menos que o Monitor de Espelhamento de Banco de Dados esteja sendo usado no momento por um membro da função de servidor fixa sysadmin, a tabela de status só será automaticamente atualizada se o Trabalho de Monitor de Espelhamento de Banco de Dados existir e se o SQL Server Agent estiver sendo executado.

Trabalho de Monitor de Espelhamento de Banco de Dados

O trabalho de monitor de espelhamento de banco de dados, Trabalho de Monitor de Espelhamento de Banco de Dados, opera independentemente do Monitor de Espelhamento de Banco de Dados. O Trabalho de Monitor de Espelhamento de Banco de Dados será criado automaticamente somente se SQL Server Management Studio for usado para iniciar uma sessão de espelhamento. Se os comandos ALTER DATABASE database_name SET PARTNER forem sempre usados para iniciar um espelhamento, o trabalho só existirá se o administrador de sistema executar o procedimento armazenado sp_dbmmonitoraddmonitoring.

Depois que o Trabalho de Monitor de Espelhamento de Banco de Dados for criado, e supondo-se que o SQL Server Agent esteja sendo executado, o trabalho será chamado a cada minuto, por padrão. O trabalho chama então o procedimento armazenado do sistema sp_dbmmonitorupdate.

O SQL Server Agent chama o Trabalho de Monitor de Espelhamento de Banco de Dados a cada minuto, por padrão, e o trabalho chama sp_dbmmonitorupdate para atualizar a tabela de status. Administradores de sistema podem alterar o período de atualização usando o procedimento armazenado do sistema sp_dbmmonitorchangemonitoring e podem exibir o período de atualização atual usando o procedimento armazenado do sistema sp_dbmmonitorchangemonitoring. Para obter mais informações, consulte sp_dbmmonitoraddmonitoring (Transact-SQL) e sp_dbmmonitorchangemonitoring (Transact-SQL).

Monitorando status de espelhamento de banco de dados (por Administradores de sistema)

Membros da função de servidor fixa sysadmin podem exibir e atualizar a tabela de status

  • Usando o Monitor de Espelhamento de Banco de Dados

    Ao usar o Monitor de Espelhamento de Banco de Dados, um administrador de sistema pode atualizar manualmente a página Status, a árvore de navegação ou a página Histórico. Isso também atualiza a tabela de status, a menos que ela já tenha sido atualizada nos 15 segundos anteriores.

    Para exibir o histórico de status de espelhamento em uma determinada instância de servidor, o administrador de sistema também pode clicar no botão Histórico de uma instância de servidor (na página Status). O histórico é exibido na caixa de diálogo Histórico do Espelhamento de Banco de Dados. Ali, o administrador de sistema pode exibir algumas ou todas as linhas na tabela de status da instância de servidor.

    Para obter mais informações sobre a métrica de página Status, consulte Métrica de Desempenho, exibida pelo "Monitor de Espelhamento de Banco de Dados," mais adiante neste tópico.

  • Usando sp_dbmmonitorresults

    Administradores de sistema podem usar o procedimento armazenado do sistema sp_dbmmonitorresults para exibir e, opcionalmente, atualizar a tabela de status, caso não tenha sido atualizada nos 15 segundos anteriores. Esse procedimento chama o procedimento sp_dbmmonitorupdate e retorna uma ou mais linhas do histórico, dependendo da quantidade solicitada na chamada de procedimento. Para obter informações sobre o status em seu conjunto de resultados, consulte sp_dbmmonitorresults (Transact-SQL).

Monitorando o status de espelhamento de banco de dados (por membros dbm_monitor)

Conforme mencionado, a primeira vez que sp_dbmmonitorupdate é executado, cria-se a função de banco de dados fixa dbm_monitor no banco de dadosmsdb. Membros da função de banco de dados fixa dbm_monitor podem exibir o status de espelhamento existente usando o Monitor de Espelhamento de Banco de Dados ou o procedimento armazenado sp_dbmmonitorresults. Mas esses usuários não podem atualizar a tabela de status. Para saber a idade do status exibido, um usuário pode verificar as ocorrências nos rótulos Log Principal (<time>) e Log espelhado (<time>) na página Status.

Membros da função de banco de dados fixa dbm_monitor dependem do Trabalho de Monitor de Espelhamento de Banco de Dados para atualizar a tabela de status a intervalos regulares. Se o trabalho não existir ou o SQL Server Agent for interrompido, o status se tornará cada vez mais obsoleto e poderá deixar de refletir a configuração da sessão de espelhamento. Por exemplo, depois de um failover, os parceiros podem parecer compartilhar a mesma função – principal ou espelhada, ou o servidor principal atual pode ser mostrado como o espelhado, enquanto o servidor espelho atual é mostrado como o principal.

Descartando o Trabalho de Monitor de Espelhamento de Banco de Dados

O trabalho de monitor de espelhamento de banco de dados, Trabalho de Monitor de Espelhamento de Banco de Dados, permanece até que seja descartado. O trabalho de monitoramento deve ser gerenciado pelo administrador de sistema. Para descartar o Trabalho de Monitor de Espelhamento de Banco de Dados, use sp_dbmmonitordropmonitoring. Para obter mais informações, consulte sp_dbmmonitordropmonitoring (Transact-SQL).

Status exibido pelo Monitor de Espelhamento de Banco de Dados

A página Status do Monitor de Espelhamento de Banco de Dados descreve os parceiros, e também o estado da sessão de espelhamento. O status inclui métrica de desempenho como o estado de log de transações, além de outras informações, com o objetivo de ajudar o cálculo atual da hora exigida para completar um failover e o potencial de perda de dados, se a sessão não for sincronizada. Além disso, a página Status exibe status e informações em geral sobre a sessão de espelhamento.

ObservaçãoObservação

Para uma apresentação do Monitor de Espelhamento de Banco de Dados e da página Status, consulte Ferramentas para monitoramento de status de espelhamento de banco de dados, mais adiante neste tópico.

As informações fornecidas para cada um deles são resumidas nas seções a seguir.

Parceiros

A página Status exibe as seguintes informações para cada um dos parceiros:

  • Instância de servidor

    Nome da instância de servidor cujo status é exibido na linha Status.

  • Função atual

    Função atual da instância de servidor. Os estados possíveis são:

    • Principal

    • Espelho

  • Estado de espelhamento

    Os estados possíveis são:

    • Desconhecido

    • Sincronizando

    • Sincronizado

    • Suspenso

    • Desconectado

  • Conexão de testemunha

    Status de conexão de testemunha. Os estados possíveis são:

    • Desconhecido

    • Conectado

    • Desconectado

Efetue logon do servidor principal

A página Status exibe as seguintes informações sobre o status do log no servidor principal a partir da hora indicada:

  • Log não enviado

    A quantidade de log esperando na fila de envio em quilobytes (KB).

  • Transação não enviada mais antiga

    Idade da transação não enviada mais antiga na fila de envio. A idade dessa transação indica quantos minutos de transações ainda não foram enviados à instância de servidor espelho. Esse valor ajuda a medir o potencial de perda de dados em termos de tempo.

  • Tempo para enviar o log (estimado)

    Número estimado de minutos que a instância de servidor principal exige para enviar o log atualmente na fila de envio para a instância de servidor espelho com base na taxa de envio atual. A hora real para o envio do log será afetada pela taxa de transações de entrada que podem variar significativamente. Porém, o valor Tempo para enviar o log (estimado) pode ser útil para o cálculo, aproximado, do tempo exigido para um failover manual.

  • Taxa de envio atual

    Taxa à qual estão sendo enviadas transações à instância de servidor espelho em KB por segundo.

  • Taxa atual de transações novas

    Taxa na qual transações de entrada estão sendo inseridas no log principal em KB por segundo. Para determinar se o espelhamento está atrasado, ativo ou atualizado, compare esse valor ao valor Tempo estimado para enviar log.

Efetue logon do servidor espelho

A página Status exibe as seguintes informações sobre o status do log no servidor espelho a partir da hora indicada:

  • Log não restaurado

    A quantidade de log esperando na fila de restauração em KB.

  • Tempo para recuperar o log (estimado)

    Número aproximado de minutos exigido para o log atualmente na fila de restauração a ser aplicado ao banco de dados espelho.

  • Taxa atual de restauração

    Taxa na qual transações estão sendo restauradas no bando de dados espelho (em KB por segundo).

Sessão de espelhamento

Além disso, a página Status exibe as seguintes informações sobre a sessão de espelhamento.

  • Sobrecarga de confirmação de espelhamento

    Atraso médio por transação em milissegundos (pertinente apenas em modo de alta segurança). Esse atraso é a quantidade de sobrecarga gerada enquanto a instância do servidor principal aguarda que a instância do servidor espelho grave o registro do log da transação na fila de restauração.

  • Tempo para enviar e restaurar todos os logs atuais (estimado)

    Tempo estimado necessário para enviar todo o log não enviado confirmado no principal e para restaurar todo o log atualmente na fila de restauração. Essa estimativa pode ser menor do que a soma dos valores dos campos Tempo para enviar o log (estimado) e Tempo para recuperar o log (estimado) uma vez que o envio e a restauração podem operar em paralelo.

  • Endereço de testemunha

    Endereço de rede da instância de servidor testemunha. Para obter mais informações sobre o formato desse endereço, consulte Especificando um endereço de rede do servidor (Espelhamento de banco de dados).

  • Modo de operação

    Modo operacional da sessão de espelhamento de banco de dados:

    • Alto desempenho (assíncrono)

    • Segurança alta sem failover automático (síncrono)

    • Segurança alta com failover automático (síncrono)