Eu tenho uma configuração de AG de 2 nós (não é um FCI). Preciso configurar um alerta para acionar um trabalho com base em uma string encontrada no log de erros mostrando que o nó agora é o novo primário.
A string que quero usar é:
'primary_pending' para 'primary_normal'
Isso é o que mostra no log de erros quando o nó secundário se torna primário. Quero que o alerta inicie um trabalho SQL que criei para automatizar nosso SSRS para usar a nova réplica primária.
Abaixo está o alerta que configurei, mas não está sendo acionado corretamente. Eu tenho o alerta configurado para executar o trabalho quando este alerta for acionado.
Quando ocorre um failover, o trabalho não é iniciado. Eu estou supondo que pode ser devido ao número de erro usado. Encontrei um post no blog sobre como usar isso, mas não consigo encontrá-lo novamente. O log de erros não exibe nenhum número de erro na linha com este texto, então acho que esse é o problema.
Como posso obter um alerta para disparar com base no texto encontrado no log de erros ou há uma maneira melhor de fazer isso?
Eu tenho lógica condicional para verificar o status primário/secundário em todos os meus trabalhos, mas não posso usar isso para este trabalho, pois quero que ele execute apenas 1x (quando se tornar primário).
Você precisa selecionar
<all databases>
na seleção do nome do banco de dados. O erro que você está verificando não está relacionado a um banco de dados específico, portanto, ter um banco de dados especificado está efetivamente filtrando-o para que o alerta não se importe com ele.Acabei de testar isso usando RAISERROR para registrar uma mensagem que incluía "'this' ou 'that'" e funcionou bem. No começo eu pensei que talvez você precisasse delimitar as aspas simples, mas no meu teste eu não fiz e funcionou.