Solucionar problemas de directivas de administración basada en directivas

La administración basada en directivas graba los errores en el registro de eventos de Windows y, para las directivas programadas, en el registro del Agente SQL Server. Si las directivas no están habilitadas o no afectan al destino esperado, el error no se considera como tal y no se registra.

Solucionar problemas de directiva

En esta sección se describen dos errores de directiva y los pasos que se pueden realizar para solucionarlos.

No se está ejecutando una directiva Al cambiar: registrar o Al cambiar: impedir

Una directiva que usa el modo de evaluación Al cambiar: registrar o Al cambiar: impedir no es efectiva por alguna de las razones siguientes:

  • La directiva está deshabilitada.

  • Un filtro excluye el destino.

  • El destino no está suscrito al grupo de directivas que contiene la directiva.

  • En el modo de evaluación Al cambiar: impedir, el mecanismo de generación de eventos del Service Broker no está supervisando los eventos correctos.

  • Hay un error en el motor de evaluación.

Para solucionar este problema, siga estos pasos:

  1. Compruebe si la directiva se ejecutó. (Estos datos también se pueden ver a través del visor de registros).

    1. Para ver si la directiva se ejecutó y generó mensajes de excepción, compruebe el historial de ejecución de la directiva en la vista msdb.dbo.syspolicy_policy_execution_history.

    2. Para comprobar si la directiva se ejecutó para el destino concreto, examine el historial de ejecución de directiva del destino concreto en cuestión en la vista msdb.dbo.syspolicy_policy_execution_history_details.

  2. Compruebe si la directiva es efectiva en el destino en cuestión.

    1. Compruebe si la directiva está habilitada.

    2. Para comprobar que la directiva se aplica al destino, utilice la página Ver directivas en SQL Server Management Studio.

  3. En las directivas que utilizan el modo de evaluación Al cambiar: impedir, Service Broker comprueba si el mecanismo de generación de eventos está supervisando los eventos correctos.

    1. Compruebe que una transacción ha confirmado y ha generado un evento que admita la faceta en la que se define la condición de la directiva.

    2. Compruebe que la cola de Service Broker está supervisando los eventos correctos utilizando la consulta siguiente:

      SELECT * FROM sys.server_event_notifications 
      WHERE name = N'syspolicy_event_notification' ;
      GO
      
  4. Compruebe el motor de evaluación.

    • Compruebe si hay errores de la administración basada en directivas en el registro de eventos de Windows.

No se está ejecutando la directiva Al programar

Una directiva Al programar puede sufrir un error por las mismas razones que una directiva Al cambiar: registrar o Al cambiar: impedir, y también porque se produzca un error en el trabajo del Agente SQL Server. Para obtener más información acerca de los trabajos, vea Ver y modificar trabajos.

Solucionar problemas de rendimiento

La administración basada en directivas no proporciona herramientas concretas para diagnosticar problemas relacionados con el rendimiento. Para determinar el tiempo de ejecución de las directivas, consulte las columnas start_date y end_date de la vista msdb.dbo.syspolicy_policy_execution_history.

Descripción del tratamiento de errores y el registro

En esta sección se describe cómo funciona el tratamiento y el registro de los errores en varias directivas.

Directiva Al cambiar: registrar y Al cambiar: impedir

Los errores de ejecución de directivas se graban en el registro de eventos de Windows. El registro tendrá el texto de error de la administración basada en directivas y una descripción XML que contiene los detalles del evento de SQL Server. Las excepciones en la lógica de ejecución principal son los errores de ejecución de directiva que se muestran en las vistas msdb.dbo.syspolicy_policy_execution_history_details y msdb.dbo.syspolicy_policy_execution_history.

Directiva Al programar

Dado que una directiva Al comprobar implica al Agente SQL Server, los archivos de registro del Agente son la primera ubicación donde se busca. Compruebe si el trabajo se ha completado correctamente. El registro del Agente SQL Server contendrá errores de llamadas a procedimientos almacenados. Si el trabajo se completó correctamente, examine el registro de eventos de Windows para comprobar si hay errores de ejecución de directiva.