次の方法で共有


ポリシー ベースの管理ポリシーのトラブルシューティング

ポリシー ベースの管理では、エラーが Windows イベント ログに記録され、スケジュールされたポリシーの場合は SQL Server エージェント ログにも記録されます。ポリシーが有効になっていない場合や、期待された目標を達成しない場合、その問題はエラーとは見なされず、ログにも記録されません。

ポリシー エラーのトラブルシューティング

ここでは、2 つのポリシー エラーとそのトラブルシューティングの手順について説明します。

"変更時: ログ" ポリシーまたは "変更時: 回避" ポリシーが実行されていない

[変更時: ログ] または [変更時: 回避] 評価モードを使用しているポリシーは、次のいずれかの理由で効力がありません。

  • ポリシーが無効になっている。

  • フィルタによって対象が除外されている。

  • ポリシーを含んでいるポリシー グループを対象がサブスクライブしていない。

  • [変更時: 回避] 評価モードで、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. トランザクションがコミットされ、ポリシーの条件が定義されているファセットでサポートされるイベントが生成されたことを確認します。

    2. 次のクエリを使用して、Service Broker キューで正しいイベントが監視されていることを確認します。

      SELECT * FROM sys.server_event_notifications 
      WHERE name = N'syspolicy_event_notification' ;
      GO
      
      SELECT * FROM sys.server_event_notifications 
      WHERE name = N'syspolicy_event_notification' ;
      GO
      
  4. 評価エンジンを確認します。

    • ポリシー ベースの管理でエラーが発生していないかを Windows イベント ログで確認します。

"スケジュールで実行" ポリシーが実行されていない

"スケジュールで実行" ポリシーは、"変更時: ログ" ポリシーや "変更時: 回避" ポリシーと同じ理由でエラーとなる可能性があります。また、SQL Server エージェント ジョブでエラーが発生したためにエラーとなることもあります。ジョブの詳細については、「ジョブの表示と変更」を参照してください。

パフォーマンス問題のトラブルシューティング

ポリシー ベースの管理には、パフォーマンスに関連する問題を診断するための特定のツールは用意されていません。ポリシーの実行時間を確認するには、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 エージェントが関係するため、まずエージェント ログ ファイルを調べます。ジョブが正常に完了したかどうかを確認します。SQL Server エージェント ログには、ストアド プロシージャ呼び出しのエラーが記録されます。ジョブが正常に完了している場合は、Windows イベント ログでポリシー実行エラーを調べます。