Compartilhar via


sp_dbmmonitorchangealert (Transact-SQL)

Aplica-se a: SQL Server

Adiciona ou altera limites de aviso para uma métrica especificada de desempenho de espelhamento.

Convenções de sintaxe de Transact-SQL

sp_dbmmonitorchangealert
    [ @database_name = ] N'database_name'
    , [ @alert_id = ] alert_id
    , [ @threshold = ] threshold
    [ , [ @enabled = ] enabled ]
[ ; ]

Argumentos

@database_name [ = ] N'database_name'

Especifica o banco de dados ao qual adicionar ou no qual alterar o limite de advertência especificado. @database_name é sysname, sem padrão.

@alert_id [ = ] alert_id

Um valor inteiro que identifica o aviso a ser adicionado ou alterado. @alert_id é int e deve ser um dos seguintes valores:

Valor Métrica de desempenho Limite de aviso
1 Transação não enviada mais antiga Especifica o número de minutos de transações que podem ser acumuladas na fila de envio, antes da geração de um aviso na instância do servidor principal. Esse aviso ajuda a medir o potencial de perda de dados em termos de tempo e pode ser relevante para o modo de alto desempenho. No entanto, o aviso também é relevante para o modo de segurança alta, quando o espelhamento é pausado ou suspenso devido à desconexão dos parceiros.
2 Log não enviado Especifica quantos quilobytes (KB) de log não enviado geram um aviso na instância do servidor principal. Esse aviso ajuda a medir o potencial de perda de dados em termos de KB e pode ser relevante para o modo de alto desempenho. No entanto, o aviso também é relevante para o modo de segurança alta, quando o espelhamento é pausado ou suspenso devido à desconexão dos parceiros.
3 Log não restaurado Especifica quantos KB de log não restaurado geram um aviso na instância do servidor espelho. Esse aviso ajuda a medir o tempo de failover. O tempo de failover consiste principalmente no tempo que o antigo servidor espelho requer para efetuar roll forward de qualquer log restante em sua fila de restauração, além de um curto tempo extra.
4 Sobrecarga espelhada confirmada Especifica o número de milissegundos de atraso médio por transação tolerado, antes que um aviso seja gerado no servidor principal. Esse atraso consiste na quantidade de sobrecarga incidente 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. Esse valor é relevante somente no modo de alta segurança.
5 Período de retenção Metadados que controlam quanto tempo as linhas na tabela de status de espelhamento de banco de dados são preservadas.

Para obter informações sobre as IDs de evento correspondentes aos avisos, consulte Usar limites de aviso e alertas sobre métricas de desempenho de espelhamento (SQL Server).

@threshold [ = ] limiar

O valor do limite para o aviso. @threshold é int, sem padrão. Se um valor acima desse limite for retornado quando o status de espelhamento for atualizado, uma entrada será inserida no log de eventos do Windows. Esse valor representa KB, minutos ou milissegundos, dependendo da métrica de desempenho.

Observação

Para exibir os valores atuais, execute o procedimento armazenado sp_dbmmonitorresults .

@enabled [ = ] habilitado

Especifica se o aviso está habilitado. @enabled é bit, com um padrão de 1. O período de retenção está sempre habilitado.

  • 0 = O aviso está desativado.
  • 1 = O aviso está ativado.

Valores do código de retorno

Nenhum.

Conjunto de resultados

Nenhum.

Permissões

Requer associação na função de servidor fixa sysadmin ou permissão de execução diretamente nesse procedimento armazenado.

Exemplos

O exemplo a seguir define limites para todas as métricas de desempenho e para o período de retenção do banco de dados AdventureWorks2022. A tabela a seguir exibe os valores usados no exemplo:

alert_id Métrica de desempenho Limite de aviso Aviso ativado?
1 Transação não enviada mais antiga 30 minutos Sim
2 Log não enviado 10.000 KB Sim
3 Log não restaurado 10.000 KB Sim
4 Sobrecarga espelhada confirmada 1.000 milissegundos Não
5 Período de retenção Oito horas Sim
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 1, 30, 1;
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 2, 10000, 1;
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 3, 10000, 1;
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 4, 1000, 0;
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 5, 8, 1;