疑難排解以原則為基礎的管理原則

以原則為基礎的管理會將錯誤記錄至 Windows 事件記錄檔和 SQL Server Agent 記錄 (針對排程的原則)。如果原則未啟用或沒有影響預期的目標,系統就不會將失敗視為錯誤而且不會加以記錄。

疑難排解原則失敗

本節將描述兩個原則失敗以及您可以針對疑難排解這些失敗執行的步驟。

變更時: 僅限記錄原則或變更時: 避免原則不在執行中

使用 [變更時: 僅限記錄][變更時: 避免] 評估模式的原則因為以下其中一個原因而無效:

  • 原則已停用。

  • 篩選排除了目標。

  • 目標並未訂閱包含此原則的原則群組。

  • 如果是 [變更時: 避免] 評估模式,Service Broker 事件機制不會監視正確的事件。

  • 評估引擎發生失敗。

若要疑難排解這個問題,請遵循下列步驟:

  1. 檢查是否已執行原則 (您也可以透過記錄檢視器檢視這項資料)。

    1. 若要查看此原則執行時是否出現例外狀況訊息,請在 msdb.dbo.syspolicy_policy_execution_history 檢視中檢查原則執行記錄。

    2. 若要查看此原則是否針對特定目標執行,請在 msdb.dbo.syspolicy_policy_execution_history_details 檢視中檢查有問題之特定目標的原則執行記錄。

  2. 檢查此原則是否針對有問題的目標生效。

    1. 確認此原則已啟用。

    2. 若要確認此原則是否套用至目標,請使用 SQL Server Management Studio 中的 [檢視原則] 頁面。

  3. 如果是使用 [變更時: 避免] 評估模式的原則,Service Broker 會檢查事件機制是否監視正確的事件。

    1. 確認交易已經認可並產生原則條件定義為開啟之 Facet 所支援的事件。

    2. 使用下列查詢來確認 Service Broker 佇列監視正確的事件:

      SELECT * FROM sys.server_event_notifications 
      WHERE name = N'syspolicy_event_notification' ;
      GO
      
  4. 檢查評估引擎。

    • 在 Windows 事件記錄檔中檢查是否有以原則為基礎的管理錯誤。

按排程時間原則不在執行中

[按排程時間] 原則會因為 [變更時: 僅限記錄][變更時: 避免] 原則的相同原因而失敗,因為 SQL Server Agent 作業中發生失敗。如需有關作業的詳細資訊,請參閱<檢視與修改作業>。

疑難排解效能問題

以原則為基礎的管理不會提供特定工具來診斷效能相關問題。若要判斷原則的執行時間,請在 msdb.dbo.syspolicy_policy_execution_history 檢視中查詢 start_date 和 end_date 資料行。

了解錯誤處理和記錄

本節將描述錯誤處理和記錄如何針對許多原則運作。

變更時: 僅限記錄原則和變更時: 避免原則

原則執行錯誤會記錄在 Windows 事件記錄檔中。此記錄檔具有以原則為基礎的管理錯誤文字,以及包含 SQL Server 事件詳細資料的 XML 描述。有關主要執行邏輯的例外狀況是原則執行錯誤,而且會顯示在 msdb.dbo.syspolicy_policy_execution_history 和 msdb.dbo.syspolicy_policy_execution_history_details 檢視表中。

按排程時間原則

因為 [按排程時間] 原則牽涉到 SQL Server Agent,所以代理程式記錄檔是要查看的第一個位置。請檢查此作業是否已成功完成。SQL Server Agent 記錄將會包含預存程序呼叫的失敗。如果此作業成功完成,請在 Windows 事件記錄中檢查是否有原則執行失敗。