作 者丨許致學 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

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

以下啟用 Blackbox Trace 範例,每個追蹤檔案 100 MB,當寫滿 100 MB事件記錄,會自動接續產生一個新的追蹤檔案,最多產生 10 個追蹤檔案,當 10 個追蹤檔案都寫滿,會自動刪除最早的檔案: