時間:2024-02-28 13:28作者:下載吧人氣:23
一 .概述
SQL Server 將某些系統(tǒng)事件和用戶定義事件記錄到 SQL Server 錯誤日志和 Microsoft Windows 應(yīng)用程序日志中。 這兩種日志都會自動給所有記錄事件加上時間戳。 使用 SQL Server 錯誤日志中的信息可以解決SQL Server的相關(guān)問題。
查看 SQL Server 錯誤日志可以確保進程(例如,備份和還原操作、批處理命令或其他腳本和進程)成功完成。 此功能可用于幫助檢測任何當(dāng)前或潛在的問題領(lǐng)域,包括自動恢復(fù)消息(尤其是在 SQL Server 實例已停止并重新啟動時)、內(nèi)核消息或其他服務(wù)器級錯誤消息。
使用 SQL Server 或任何文本編輯器可以查看 SQL Server Management Studio 錯誤日志。默認情況下,錯誤日志位于 Program FilesMicrosoft SQL ServerMSSQL.nMSSQLLOGERRORLOG 和 ERRORLOG.n 文件中。例如: 我電腦win7上將sql server 2008 r2數(shù)據(jù)庫安裝在D:Program Files目錄下,錯誤日志路徑為 D:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLLog
每當(dāng)啟動 SQL Server 實例時,將創(chuàng)建新的錯誤日志信息,sqlserver系統(tǒng)自動調(diào)用 exec sp_cycle_errorlog 系統(tǒng)存儲過程,該存儲過程會關(guān)閉當(dāng)前的錯誤日志文件,并循環(huán)錯誤日志擴展編號來循環(huán)使用錯誤日志文件,而不必重新啟動 SQL Server實例 (區(qū)別mysql下 有四種日志文件,文件會一直增長,需要管理員去清除,避免影響磁盤空間) 。通常, SQL Server 保留前六個日志的備份, 按照時間順序,依次用文件擴展名.1 .2… .6表示。每重啟一次服務(wù),文件擴展名都會加一, 最早那份會被刪除。
二. Errorlog日志內(nèi)容
2.1 日志自動記錄的信息大概有如下:
(1) SQL SERVER 的啟動參數(shù),以及認證模式,內(nèi)存分配模式。
(2) 每個數(shù)據(jù)庫是否能夠被正常打開。如果不能,原因是什么?
(3) 數(shù)據(jù)庫損壞相關(guān)的錯誤
(4) 數(shù)據(jù)庫備份與恢復(fù)動作記錄
(5) DBCC CHECKDB記錄
(6) 內(nèi)存相關(guān)的錯誤和警告
(7) SQL調(diào)度出現(xiàn)異常時的警告。一般SERVER Hang 服務(wù)器死機會伴隨著有這些警告
(8) SQL I/O操作遇到長時間延遲的警告
(9) SQL在運行過程中遇到的其他級別比較高的錯誤
(10) SQL內(nèi)部的訪問越界錯誤(Access Violation)
(11) SQL服務(wù)關(guān)閉時間
(12) SQL SERVER版本,以及windows和processor基本信息。
2.2 日志開啟跟蹤能看到的信息
(1) 所有用戶成功或失敗的登入
(2) 死鎖及其參與者的信息。跟蹤標(biāo)志1222 或1204
2.3 日志不能記錄的問題
(1) 阻塞問題。只要阻塞還沒有嚴(yán)重到影響線程調(diào)度,日志里是不會體現(xiàn)的。
(2) 普通性能問題,超時問題。
(3) windows層面異常。
所以在檢查sqlserver 相關(guān)問題的時候,總是從error log著手,如果error log里有一些錯誤或警告,就要確認排查,如果記錄問題的時間與軟件系統(tǒng)出問題時間對得上,就需要著重分析。
三 .跟蹤標(biāo)志
使用DBCC TRACEON來指定要打開的跟蹤標(biāo)記的編號,跟蹤標(biāo)記用于通過控制 SQL Server 的運行方式來自定義某些特征。 啟用的跟蹤標(biāo)記將在服務(wù)器中一直保持啟用狀態(tài),直到執(zhí)行 DBCC TRACEOFF 語句將其禁用為止。在 SQL Server 中,有兩種跟蹤標(biāo)志:會話和全局。 會話跟蹤標(biāo)志對某個連接是有效的,只對該連接可見。 全局跟蹤標(biāo)志在服務(wù)器級別上進行設(shè)置,對服務(wù)器上的每一個連接都可見。 若要確定跟蹤標(biāo)記的狀態(tài),請使用 DBCC TRACESTATUS。 若要禁用跟蹤標(biāo)記,請使用 DBCC TRACEOFF。
— 下面示例是記錄死鎖,跟蹤標(biāo)志1222 或1204, 腳本如下所示:
–指定打開當(dāng)前會話的跟蹤標(biāo)志1222 或1204
DBCC TRACEON (1222,1204)
–以全局方式打開跟蹤標(biāo)志1222 或1204
DBCC TRACEON (1222,1204, -1);
— 查看跟蹤標(biāo)志狀態(tài),如下圖所示
DBCC TRACESTATUS
網(wǎng)友評論