作 者丨許致學 Lancelot Hsu / Database Expert Services
發行日期丨2022-11-14
閱讀時間丨10 minutes
<aside> 🔥 當飛機發生墜機意外,需要飛行記錄器(俗稱黑盒子)協助調查事故原因;當 SQL Server 發生服務異常停止事件,其實也有黑盒子可以協助調查事件的原因…
</aside>
當 SQL Server 不定時/定時發生異常導致服務停止,該如何留下更多線索協助查找問題根源?
1 分鐘就可以啟用SQL Server 事先定義的追蹤 Blackbox Trace,留下錯誤訊息與警告訊息
零售業客戶的某一台 SQL Server 2016 每隔 28 天就會發生服務異常停止,查看 SQL Server 服務記錄檔 (ERRORLOG) 、Default Trace 與 Windows Server 應用程式日誌都未發現足以認定與服務異常停止相關的訊息。
啟用 SQL Server 飛行紀錄器 Blackbox Trace,發現導致服務異常停止的相關訊息。
Blackbox Trace 是 SQL Server 事先定義的追蹤,預設未啟用,其定義的追蹤事件如下:
Event Class | ID | Event Name |
---|---|---|
Errors and Warnings | 16 | Attention |
Errors and Warnings | 33 | Exception |
Stored Procedures | 11 | RPC:Starting |
TSQL | 13 | SQL:BatchStarting |
<aside> 💡 注意
以下啟用 Blackbox Trace 範例,每個追蹤檔案 100 MB,當寫滿 100 MB事件記錄,會自動接續產生一個新的追蹤檔案,最多產生 10 個追蹤檔案,當 10 個追蹤檔案都寫滿,會自動刪除最早的檔案: