Solucionando problemas de diretivas do Gerenciamento Baseado em Diretivas

O Gerenciamento Baseado em Diretivas registra erros para o log de evento do Windows e, para diretivas agendadas, para o log de Agente SQL Server. Se as diretivas não estiverem habilitadas ou não afetarem o destino esperado, a falha não será considerada e não será registrado nenhum erro.

Solucionando problemas de falhas de diretiva

Esta seção descreve duas falhas de diretiva e as etapas que você pode executar para solucioná-las.

Uma diretiva Ao alterar: somente log ou Ao alterar: impedir não está sendo executada

Uma diretiva que está usando o modo de avaliação Ao alterar: somente log ou On change_prevent não é eficaz por um dos seguintes motivos:

  • A diretiva está desabilitada.

  • O destino é excluído por um filtro.

  • O destino não assina o grupo de diretivas que contém a diretiva.

  • Para o modo de avaliação Ao alterar: impedir, o mecanismo de eventos do Service Broker não está monitorando os eventos corretos.

  • Há uma falha no mecanismo de avaliação.

Para solucionar este problema, siga estas etapas:

  1. Verifique se a diretiva foi executada. (Esses dados também podem ser exibidos pelo visualizador de log.)

    1. Para ver se a diretiva foi executada com mensagens de exceção, verifique o histórico de execução da diretiva na exibição msdb.dbo.syspolicy_policy_execution_history.

    2. Para ver se a diretiva foi executada pelo destino específico, verifique o histórico de execução da diretiva quanto ao destino especificado em questão na exibição msdb.dbo.syspolicy_policy_execution_history_details.

  2. Verifique se a diretiva é efetiva no destino em questão.

    1. Verifique se a diretiva está habilitada.

    2. Para verificar se a diretiva se aplica ao destino, use a página Exibir Diretivas em SQL Server Management Studio.

  3. Para diretivas que usam o modo de avaliação Ao alterar: somente log, o Service Broker verifica se o mecanismo de eventos está monitorando os eventos corretos.

    1. Verifique se uma transação foi confirmada e gerou um evento que seja aceito pela faceta na qual a condição da diretiva está definida.

    2. Verifique se a fila Service Broker está monitorando os eventos corretos usando a consulta a seguir:

      SELECT * FROM sys.server_event_notifications 
      WHERE name = N'syspolicy_event_notification' ;
      GO
      
  4. Verifique o mecanismo de avaliação.

    • Verifique o log de evento do Windows quanto a um erro do Gerenciamento Baseado em Diretivas.

Uma diretiva Ao Agendar não está sendo executada

Uma diretiva Ao Agendar pode falhar pelos mesmos motivos que uma diretiva Ao alterar: log ou Ao alterar: impedir, e também porque houve uma falha no trabalho do SQL Server Agent. Para obter mais informações sobre trabalhos, consulte Exibindo e modificando trabalhos.

Solucionando problemas de desempenho

O Gerenciamento Baseado em Diretiva não fornece ferramentas específicas para diagnosticar problemas relacionados ao desempenho. Para determinar o tempo de execução para as diretivas, consulte as colunas start_date e end_date na exibição msdb.dbo.syspolicy_policy_execution_history.

Compreendendo o tratamento e o log de erros

Esta seção descreve como o tratamento e o log de erros funcionam para várias diretivas.

Diretiva Ao alterar: somente log e diretiva Ao alterar: impedir

Os erros de execução de diretiva são registrados no log de evento do Windows. O log terá um texto de erro de Gerenciamento Baseado em Diretiva e uma descrição XML que contém os detalhes do evento do SQL Server. As exceções na lógica de execução principal são erros de execução Diretiva mostrados nas exibições msdb.dbo.syspolicy_policy_execution_history e msdb.dbo.syspolicy_policy_execution_history_details.

Diretiva Ao agendar

Como uma diretiva Ao agendar envolve o SQL Server Agent, o local dos arquivos de log do Agent é o primeiro a ser examinado. Verifique se o trabalho foi concluído com sucesso. O log de Agente SQL Server conterá falhas de chamadas de procedimento armazenado. Se o trabalho foi concluído com sucesso, verifique o log de eventos do Windows quanto a falhas de execução de diretiva.