新たな既定のセッション
SQL Server 2008 から提供されている system_health セッションですが、SQL Server 2012 ではもう1つのセッションが既定で提供されています。AlwaysOn_health セッションがそのセッションとなります。AlwaysOn_health はそのセッション名から想像がつくかと思いますが、AlwaysOn 可用性グループのイベントをキャプチャします。このセッションで次のような可用性グループのイベントをキャプチャしています。
- AlwaysOn DDL の実行
- リースの期限切れ
- レプリカ マネージャの状態の変更
- レプリカの状態の変更
- レプリカの役割の変更
- REDO スレッドがロックの獲得待ちが発生した場合
- エンド ポイントの関連
- AlwaysOn 接続タイムアウト
- リスナーの開始/停止
- Windows Server フェールオーバー クラスタの問題
- 可用性グループ リソースの失敗
- 自動ページ修復
- データベースのサスペンド/レジューム
AlwaysOn_health は既定で実行されていません。[新しい可用性グループ ウィザード]で可用性グループを構成すると自動で開始されるようになります。
AlwaysOn_health セッションのターゲットは event_file です。system_health セッションと同じログ フォルダに AlwaysOn_health_*.xel のファイル名でイベント データが保存されます。
また、<インスタンス ディレクトリ>\MSSQL\Install\u_tables.sql に DDL が含まれています。
ここまで紹介してきた機能の他にも .NET Framework のライブラリが提供されユーザー アプリケーションからイベント データを参照が可能になっています。また、PowerShell で操作が可能になるなど、ユーザビリティは向上しています。使いやすくなった拡張イベントをトラブルシューティングのツールの 1 つとしてご利用いただければと思います。