Problembehandlung bei richtlinienbasierten Verwaltungsrichtlinien

Die richtlinienbasierte Verwaltung zeichnet Fehler im Windows-Ereignisprotokoll und für geplante Richtlinien im SQL Server-Agentprotokoll auf. Wenn keine Richtlinien aktiviert sind oder die Richtlinien keine Auswirkungen auf das erwartete Ziel haben, wird das Problem nicht als Fehler betrachtet und nicht protokolliert.

Problembehandlung bei Richtlinienfehlern

In diesem Abschnitt werden zwei Richtlinienfehler und die Schritte beschrieben, die Sie unternehmen können, um die Fehler zu beheben.

Eine Richtlinie 'Bei Änderung: Nur protokollieren' oder eine Richtlinie 'Bei Änderung: Verhindern' wird nicht ausgeführt

Eine Richtlinie, die den Auswertungsmodus Bei Änderung: Nur protokollieren oder Bei Änderung: Verhindern verwendet, ist aus einem der folgenden Gründe nicht in Kraft:

  • Die Richtlinie ist deaktiviert.

  • Das Ziel wird durch einen Filter ausgeschlossen.

  • Das Ziel hat die Richtliniengruppe nicht abonniert, die die Richtlinie enthält.

  • Der Service Broker-Ereignismechanismus überwacht nicht die richtigen Ereignisse für den Auswertungsmodus Bei Änderung: Verhindern.

  • Im Auswertungsmodul liegt ein Fehler vor.

Um dieses Problem zu beheben, führen Sie folgende Schritte aus:

  1. Überprüfen Sie, ob die Richtlinie ausgeführt wurde. (Diese Daten können auch über den Protokoll-Viewer angezeigt werden.)

    1. Um festzustellen, ob die Richtlinie mit Ausnahmemeldungen ausgeführt wurde, überprüfen Sie den Ausführungsverlauf der Richtlinie in der msdb.dbo.syspolicy_policy_execution_history-Sicht.

    2. Um festzustellen, ob die Richtlinie für das spezielle Ziel ausgeführt wurde, überprüfen Sie den Ausführungsverlauf der Richtlinie für dieses spezielle Ziel in der msdb.dbo.syspolicy_policy_execution_history_details-Sicht.

  2. Überprüfen Sie, ob die Richtlinie auf dem gewünschten Ziel gültig ist.

    1. Überprüfen Sie, ob die Richtlinie aktiviert ist.

    2. Auf der Seite Richtlinien anzeigen in SQL Server Management Studio können Sie überprüfen, ob die Richtlinie für das Ziel gilt.

  3. Für Richtlinien, die den Auswertungsmodus Bei Änderung: Verhindern verwenden, überprüft Service Broker, ob der Ereignismechanismus die richtigen Ereignisse überwacht.

    1. Vergewissern Sie sich, dass eine Transaktion durchgeführt wurde und dass ein Ereignis erstellt wurde, das durch das Facet unterstützt wird, auf dessen Bedingung die Richtlinie definiert wurde.

    2. Überprüfen Sie, ob die Service Broker-Warteschlange die richtigen Ereignisse überwacht. Verwenden Sie dazu die folgende Abfrage:

      SELECT * FROM sys.server_event_notifications 
      WHERE name = N'syspolicy_event_notification' ;
      GO
      
  4. Überprüfen Sie das Auswertungsmodul.

    • Überprüfen Sie das Windows-Ereignisprotokoll auf einen Fehler in der richtlinienbasierten Verwaltung.

Eine Richtlinie 'Nach Zeitplan' wird nicht ausgeführt

Bei einer Richtlinie Nach Zeitplan kann aus denselben Gründen ein Fehler auftreten wie bei einer Richtlinie Bei Änderung: Nur protokollieren oder einer Richtlinie Bei Änderung: Verhindern. Es kann auch zu einem Fehler kommen, weil ein Fehler im SQL Server-Agent-Auftrag aufgetreten ist. Weitere Informationen zu Aufträgen finden Sie unter Anzeigen und Ändern von Aufträgen.

Behandlung von Leistungsproblemen

Die richtlinienbasierte Verwaltung stellt keine speziellen Tools für die Diagnose leistungsbezogener Probleme bereit. Um die Ausführungszeit für Richtlinien zu bestimmen, fragen Sie die Spalten start_date und end_date in der msdb.dbo.syspolicy_policy_execution_history-Sicht ab.

Grundlegendes zu Fehlerbehandlung und -protokollierung

In diesem Abschnitt wird beschrieben, wie die Fehlerbehandlung und -protokollierung für mehrere Richtlinien erfolgt.

Richtlinie 'Bei Änderung: Nur protokollieren' und Richtlinie 'Bei Änderung: Verhindern'

Fehler bei der Richtlinienausführung werden im Windows-Ereignisprotokoll protokolliert. Im Protokoll sind der Text des Fehlers der richtlinienbasierten Verwaltung und eine XML-Beschreibung aufgeführt, die die Einzelheiten des SQL Server-Ereignisses enthält. Ausnahmen für die Hauptausführungslogik sind Fehler der Richtlinienausführung, die in den Sichten msdb.dbo.syspolicy_policy_execution_history und msdb.dbo.syspolicy_policy_execution_history_details angezeigt werden.

Richtlinie 'Nach Zeitplan'

Da bei einer Richtlinie Nach Zeitplan der SQL Server-Agent beteiligt ist, müssen zunächst die Agentprotokolldateien überprüft werden. Stellen Sie fest, ob der Auftrag erfolgreich abgeschlossen wurde. Das SQL Server-Agentprotokoll enthält Fehler, die bei Aufrufen gespeicherter Prozeduren aufgetreten sind. Wenn der Auftrag erfolgreich abgeschlossen wurde, überprüfen Sie das Windows-Ereignisprotokoll auf Richtlinienausführungsfehler.