久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

sql server中錯誤日志errorlog的示例分析

198次閱讀
沒有評論

共計 4038 個字符,預(yù)計需要花費(fèi) 11 分鐘才能閱讀完成。

這篇文章將為大家詳細(xì)講解有關(guān) sql server 中錯誤日志 errorlog 的示例分析,丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一 . 概述

SQL Server 將某些系統(tǒng)事件和用戶定義事件記錄到 SQL Server 錯誤日志和 Microsoft Windows 應(yīng)用程序日志中。這兩種日志都會自動給所有記錄事件加上時間戳。使用 SQL Server 錯誤日志中的信息可以解決 SQL Server 的相關(guān)問題。

查看 SQL Server 錯誤日志可以確保進(jìn)程(例如,備份和還原操作、批處理命令或其他腳本和進(jìn)程)成功完成。此功能可用于幫助檢測任何當(dāng)前或潛在的問題領(lǐng)域,包括自動恢復(fù)消息(尤其是在 SQL Server 實(shí)例已停止并重新啟動時)、內(nèi)核消息或其他服務(wù)器級錯誤消息。

使用 SQL Server 或任何文本編輯器可以查看 SQL Server Management Studio 錯誤日志。默認(rèn)情況下,錯誤日志位于 Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG 和 ERRORLOG.n 文件中。例如: 我電腦 win7 上將 sql server 2008 r2 數(shù)據(jù)庫安裝在 D:\Program Files 目錄下, 錯誤日志路徑為 D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log

每當(dāng)啟動 SQL Server 實(shí)例時,將創(chuàng)建新的錯誤日志信息,sqlserver 系統(tǒng)自動調(diào)用 exec sp_cycle_errorlog 系統(tǒng)存儲過程,該存儲過程會關(guān)閉當(dāng)前的錯誤日志文件,并循環(huán)錯誤日志擴(kuò)展編號來循環(huán)使用錯誤日志文件,而不必重新啟動 SQL Server 實(shí)例 (區(qū)別 mysql 下 有四種日志文件,文件會一直增長,需要管理員去清除,避免影響磁盤空間)。通常,SQL Server 保留前六個日志的備份, 按照時間順序,依次用文件擴(kuò)展名.1 .2…  .6 表示。每重啟一次服務(wù),文件擴(kuò)展名都會加一, 最早那份會被刪除。 

二. Errorlog 日志內(nèi)容

2.1  日志自動記錄的信息大概有如下:

  (1) SQL SERVER 的啟動參數(shù),以及認(rèn)證模式,內(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ù)器死機(jī)會伴隨著有這些警告

  (8) SQL I/ O 操作遇到長時間延遲的警告

  (9) SQL 在運(yùn)行過程中遇到的其他級別比較高的錯誤

  (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 里有一些錯誤或警告,就要確認(rèn)排查,如果記錄問題的時間與軟件系統(tǒng)出問題時間對得上,就需要著重分析。

三 . 跟蹤標(biāo)志

使用 DBCC TRACEON 來指定要打開的跟蹤標(biāo)記的編號,跟蹤標(biāo)記用于通過控制 SQL Server 的運(yùn)行方式來自定義某些特征。啟用的跟蹤標(biāo)記將在服務(wù)器中一直保持啟用狀態(tài),直到執(zhí)行 DBCC TRACEOFF 語句將其禁用為止。在 SQL Server 中,有兩種跟蹤標(biāo)志:會話和全局。會話跟蹤標(biāo)志對某個連接是有效的,只對該連接可見。全局跟蹤標(biāo)志在服務(wù)器級別上進(jìn)行設(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

 --  以全局方式關(guān)閉跟蹤標(biāo)志狀態(tài)
 DBCC TRACEOFF(1222,1204, -1)

其它跟蹤標(biāo)志號可參考官方文檔:

https://docs.microsoft.com/zh-cn/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql?view=sql-server-2017

  四. 配置 errorlog

在對象資源管理器中,展開 SQL Server 的實(shí)例,展開“管理”,右鍵單擊“SQL Server 日志”,再單擊“配置”如下圖所示:

4.1 限制錯誤日志文件在回收之前的數(shù)目

若選中此選項,將限制在錯誤日志回收前可以創(chuàng)建的錯誤日志數(shù)。每次啟動 SQL Server 實(shí)例時都將創(chuàng)建新的錯誤日志。SQL Server 將保留前六個日志的備份,除非選中此選項并在下面指定一個不同的最大錯誤日志文件數(shù)。

4.2  最大錯誤日志文件數(shù)

指定錯誤日志文件回收前創(chuàng)建的最大錯誤日志文件數(shù)。默認(rèn)值為 6,即 SQL Server 在回收備份日志前保留的以前備份日志的數(shù)量。

五. SQL Server 代理錯誤日志

SQL Server 默認(rèn)情況下,代理創(chuàng)建錯誤日志來記錄警告和錯誤。SQL Server 最多可以維護(hù)九個 SQL Server 代理錯誤日志。每個存檔日志都有一個擴(kuò)展名,指示該日志的相對存在時間。例如上圖,當(dāng)前表示最新的存檔錯誤日志,而編號 1 表示最舊的存檔錯誤日志。

默認(rèn)情況下,執(zhí)行跟蹤消息不寫入 SQL Server 代理日志錯誤,因為它們會將日志填滿。如果錯誤日志已滿,會降低選擇和分析更嚴(yán)重的錯誤的能力。因為日志會增加服務(wù)器的處理負(fù)荷,所以請務(wù)必仔細(xì)考慮是否值得將執(zhí)行跟蹤消息捕獲到錯誤日志中。通常,最好僅在調(diào)試某個特定問題時捕獲所有消息。

六. 查看 errorlog

Errorlog 文件以文本方式記錄,用任何文件編輯器都能打開。下面介紹二個存儲過程來過濾查看日志文件。

6.1  xp_enumerrorlogs

通過 xp_enumerrorlogs 可以查看錯誤日志文件的存檔和占用空間大小,默認(rèn)參數(shù)是 1, 表示查看 sql server 日志。參數(shù) 2 表示查看 sql server 代理錯誤日志列表。腳本如下所示:

--  查看 sql server 日志列表
EXEC xp_enumerrorlogs

 --  查看代理錯誤日志
 EXEC xp_enumerrorlogs 2

6.2 xp_readerrorlog

通過系統(tǒng)存儲過程:xp_readerrorlog, 能條件過濾日志內(nèi)容查看,它一共有 7 個參數(shù),分別是:
(1). 存檔編號(0~99)

(2). 日志類型(1 為 SQL Server 日志,2 為 SQL Server Agent 日志)

(3). 查詢包含的字符串

(4). 查詢包含的字符串

(5). LogDate 開始時間

(6). LogDate 結(jié)束時間

(7). 結(jié)果排序,按 LogDate 排序(Desc、Asc)

例 1:查看當(dāng)前 sql server 錯誤日志文件內(nèi)容。存檔編號默認(rèn)值是 0,日志類型默認(rèn)是 1,如果要查看當(dāng)前 sql server 錯誤日志文件內(nèi)容有三種寫法, 腳本如下:

EXEC xp_readerrorlog
EXEC xp_readerrorlog 0
EXEC xp_readerrorlog 0,1

例 2:查看 SQL Server 日志歷史存檔為編號 1 的文件中,發(fā)生的時間為 2018-10-27 19:00 點(diǎn) 至 2018-10-27 20:00 之間的錯誤,排序方式為時間的倒排序,為了滿足上面的要求, 腳本如下:

EXEC xp_readerrorlog 1,1,null,null, 2018-10-27 19:00 , 2018-10-27 20:00 , DESC

例 3:查看當(dāng)前 SQL Server 日志文件中,錯誤內(nèi)容里面包含字符串:“Login failed for user sa”  的錯誤, 腳本如下:

EXEC xp_readerrorlog 0,1, Login failed for user  sa

收縮 Errorlog 文件

生產(chǎn)服務(wù)器上的 ErrorLog 文件有時候會碰到文件很大的情況,尤其將登錄認(rèn)證情況記錄到錯誤日志的情況之下,此時使用 SQL Server Management Studio 或者文本編輯器查看錯誤日志查看的時候速度會是個問題,對于這種情況,可以在不重新啟動服務(wù)器的情況下,通過存儲過程 sp_cycle_errorlog 來生成新的日志文件,并循環(huán)錯誤日志擴(kuò)展編號,就如同重新啟動服務(wù)時候一樣。除了 Execute sp_cycle_errorlog 之外,也可以使用 DBCC ERRORLOG 來實(shí)現(xiàn)同樣的功能。在實(shí)際操作中,也可以通過建立一個 Job 定時去執(zhí)行該存儲過程,這樣將日志文件大小控制在合理的范圍之內(nèi)。

注意事項:舊的 ErrorLog 文件中的數(shù)據(jù)將被覆蓋!如果必須保存舊的 ErrorLog 文件中的數(shù)據(jù),則可將這些舊的 ErrorLog 文件復(fù)制到某個外部存儲介質(zhì)中。

Exec(DBCC ErrorLog)  或 exec sp_cycle_errorlog,或者可以通過以下命令,將 sp 放在 Job 中定期執(zhí)行。

關(guān)于“sql server 中錯誤日志 errorlog 的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-04發(fā)表,共計4038字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 朝阳县| 扎鲁特旗| 吴江市| 延吉市| 武清区| 永善县| 临夏县| 十堰市| 马鞍山市| 郴州市| 东明县| 涞水县| 华亭县| 清镇市| 上虞市| 弥渡县| 磐石市| 秭归县| 武威市| 信阳市| 惠水县| 宝坻区| 嵊泗县| 鹤壁市| 天峻县| 黎城县| 西乌珠穆沁旗| 黄大仙区| 平阳县| 通化县| 顺平县| 札达县| 钦州市| 兴和县| 邯郸县| 新绛县| 阳谷县| 潢川县| 巢湖市| 台湾省| 曲靖市|