Partilhar via


sp_dbmmonitorchangealert (Transact-SQL)

Aplica-se a:SQL Server

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

Transact-SQL convenções de sintaxe

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

Arguments

[ @database_name = ] N'database_name'

Especifica a base de dados para a qual adicionar ou alterar o limiar de aviso 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 Limiar de aviso
1 Transação não enviada mais antiga Especifica o número de minutos de transações que podem acumular-se na fila de envio antes de ser gerado um aviso na instância principal do servidor. Este aviso ajuda a medir o potencial de perda de dados em termos de tempo, podendo ser relevante para o modo de alto desempenho. No entanto, o aviso também é relevante para o modo de alta segurança quando o espelhamento está pausado ou suspenso porque os parceiros ficam desconectados.
2 Registo não enviado Especifica quantos kilobytes (KB) de registo não enviado geram um aviso na instância principal do servidor. Este 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 alta segurança quando o espelhamento está pausado ou suspenso porque os parceiros ficam desconectados.
3 Registo não restaurado Especifica quantos KB de registo não restaurado geram um aviso na instância do servidor espelho. Este aviso ajuda a medir o tempo de falha. O tempo de failover consiste principalmente no tempo que o antigo servidor espelho precisa para avançar qualquer registo restante na sua fila de redo, mais um curto tempo adicional.
4 Overhead de compromissos espelhados Especifica o número de milissegundos de atraso médio por transação que são tolerados antes de um aviso ser gerado no servidor principal. Este atraso é a quantidade de overhead incorrida enquanto a instância principal do servidor espera que a instância do servidor espelho escreva o registo de registo da transação na fila de redo. Este valor é relevante apenas em modo de alta segurança.
5 Período de retenção Metadados que controlam o comprimento das linhas na tabela de estado de espelhamento da base de dados são preservadas.

Para informações sobre os IDs de eventos correspondentes aos avisos, consulte Usar Limiares e Alertas de Aviso no Espelhamento de Métricas de Desempenho (SQL Server).

[ @threshold = ] limiar

O valor limiar para o aviso. @threshold é int, sem padrão. Se um valor acima deste limiar for devolvido quando o estado de espelhamento é atualizado, uma entrada é introduzida no registo de eventos do Windows. Este valor representa KB, minutos ou milissegundos, dependendo da métrica de desempenho.

Observação

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

[ @enabled = ] ativado

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

  • 0 = Aviso desativado.
  • 1 = Aviso ativado.

Valores de código de retorno

Nenhum.

Conjunto de resultados

Nenhum.

Permissions

Requer a pertença ao papel fixo de sysadmin servidor, ou permissão de execução diretamente neste procedimento armazenado.

Examples

O exemplo seguinte define limiares para cada uma das métricas de desempenho e o período de retenção da AdventureWorks2025 base de dados. A tabela seguinte mostra os valores usados no exemplo.

alert_id Métrica de desempenho Limiar de aviso Aviso ativado?
1 Transação não enviada mais antiga 30 minutos Yes
2 Registo não enviado 10.000 KB Yes
3 Registo não restaurado 10.000 KB Yes
4 Overhead de compromissos espelhados 1.000 milissegundos Não
5 Período de retenção Oito horas Yes
EXECUTE sp_dbmmonitorchangealert AdventureWorks2022, 1, 30, 1;
EXECUTE sp_dbmmonitorchangealert AdventureWorks2022, 2, 10000, 1;
EXECUTE sp_dbmmonitorchangealert AdventureWorks2022, 3, 10000, 1;
EXECUTE sp_dbmmonitorchangealert AdventureWorks2022, 4, 1000, 0;
EXECUTE sp_dbmmonitorchangealert AdventureWorks2022, 5, 8, 1;