Azure の PaaS の SQL Server である、SQL Database は計画メンテナンスにより、メンテナンスが発生した際には、SQL Server のサービスの再起動が発生します。
計画メンテナンスの情報については、Azure SQL Database および Azure SQL Managed Instance での Azure メンテナンス イベントの計画 に記載されています。
最新のドキュメントでは、記載内容が変わっていますが、古いドキュメント では、次のように記載されていました。
頻度
平均すると、1 か月に 1.7 回の計画メンテナンス イベントが発生します。
今は、次のような機能が追加されており、計画メンテナンスが以前より把握しやすいようになっていますが、どこかのタイミングで計画メンテナンスによる再起動を発生し、再起動を完全に抑えることはできません。
計画メンテナンスによる瞬間的な接続の切断が行われたかの状況については、標準のメトリックの「Failed Connections」を使用して確認することができるそうです。
このメトリックを使用したアラートルールを設定して接続の失敗を把握することで、メンテナンスが行われたのかを把握するという方法をとることもできるのではないでしょうか。
それ以外の方法として、DMV から SQL Server の起動時間を取得するという方法をとることもできます。
今回の投稿ではこの方法についてまとめておきたいと思います。