主頁 > 知識(shí)庫 > SQL Server代理:理解SQL代理錯(cuò)誤日志處理方法

SQL Server代理:理解SQL代理錯(cuò)誤日志處理方法

熱門標(biāo)簽:股票配資電銷機(jī)器人 實(shí)體店地圖標(biāo)注怎么標(biāo) 外呼系統(tǒng)會(huì)封嗎 武漢AI電銷機(jī)器人 電銷機(jī)器人 深圳 地圖標(biāo)注如何弄全套標(biāo) 萬利達(dá)綜合醫(yī)院地圖標(biāo)注點(diǎn) 南京電銷外呼系統(tǒng)哪家好 在電子版地圖標(biāo)注要收費(fèi)嗎

SQL Server代理是所有實(shí)時(shí)數(shù)據(jù)庫的核心。代理有很多不明顯的用法,因此系統(tǒng)的知識(shí),對(duì)于開發(fā)人員還是DBA都是有用的。這系列文章會(huì)通俗介紹它的很多用法。

如我們?cè)谶@個(gè)系列的前幾篇文章所見,SQL Server代理是由一系列的作業(yè)步驟組成,每個(gè)步驟是不同類型將要進(jìn)行的工作。如果你在第4篇所見,SQL Server代理也提供使用數(shù)據(jù)庫郵件發(fā)送提醒的能力。如果出現(xiàn)問題,不管怎樣, 你必須去查看下數(shù)據(jù)庫郵件錯(cuò)誤日志。在這篇文章里,你會(huì)學(xué)到如何理解和查看SQL Server錯(cuò)誤日志的所有相關(guān)知識(shí)。你會(huì)查看最常見的錯(cuò)誤日志,還有理解如何知道當(dāng)一條信息需要你采取的行動(dòng),什么是對(duì)你最直接的信息。一旦你理解了錯(cuò)誤日志,當(dāng)你進(jìn)行SQL Server代理相關(guān)故障排除時(shí),你會(huì)節(jié)約大量的時(shí)間。

SQL Server代理錯(cuò)誤日志

SQL Server代理維護(hù)它自己的錯(cuò)誤日志,和SQL Server錯(cuò)誤日志分開。SQL Server錯(cuò)誤日志位置SQL Server所在目錄下的\MSSQL\Log目錄(C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log,這篇文章使用SQL Server 2008R2作為默認(rèn)實(shí)例)。SQL Server錯(cuò)誤日志默認(rèn)名為ERRORLOG(沒有文件擴(kuò)展名),SQL Server代理錯(cuò)誤日志默認(rèn)名為SQLAGENTOUT。在這篇文章里,我們的大部分時(shí)間會(huì)花在SQL代理錯(cuò)誤日志,不管怎樣,你也需要看下SQL Server錯(cuò)誤日志。

查看SQL Server代理錯(cuò)誤日志

當(dāng)你首次瀏覽到\MSSQL目錄,并嘗試查看日志目錄,很可能你需要請(qǐng)求提升你的權(quán)限來獲得訪問這個(gè)目錄的權(quán)限。默認(rèn)情況下,SQL Server和SQL Server代理的服務(wù)賬號(hào)有這個(gè)目錄的讀寫權(quán)限,但你(使用用戶賬號(hào))不能訪問。如果你是本地管理員,你可以授權(quán)自己訪問后,直接查看日志文件。如圖1所示,默認(rèn)的權(quán)限和安全設(shè)置是這樣的。不要從目錄里移除你服務(wù)賬號(hào)的權(quán)限,否則SQL Server和SQL Server代理會(huì)不能正常工作。

插圖1:SQL Server的Log目錄權(quán)限

一旦你在\MSSQL\LOG目錄里,對(duì)于SQL Server和SQL Server代理,你都會(huì)看到很多日志文件,原先的日志文件(只要正常啟動(dòng)服務(wù),每次都會(huì)創(chuàng)建)也在目錄里。SQLAGENT.OUT文件是SQL Server代理的當(dāng)前日志文件,因此這是你要打開的文件。默認(rèn)情況下,當(dāng)你嘗試打開這個(gè)文件時(shí),你需要選擇打開這個(gè)后綴為.OUT文件的默認(rèn)程序。記事本就可以,當(dāng)你有另一個(gè)喜好,你可以選擇這個(gè)擴(kuò)展文件名的文本查看器(如圖2所示,選擇記事本)。

插圖2:.OUT文件用記事本打開。

一旦選擇后,SQLAGENT.OUT文件會(huì)打開,如插圖3所示。

插圖3:SQL Server代理錯(cuò)誤日志(SQLAGENT.OUT)

你很容易發(fā)現(xiàn),應(yīng)該有更好的方式查看錯(cuò)誤日志,沒錯(cuò)!SSMS有日志文件查看器,這在第4篇數(shù)據(jù)庫郵件里就已經(jīng)簡(jiǎn)單介紹了。切換到錯(cuò)誤日志,展開SQL Server代理文件夾,錯(cuò)誤日志文件夾,你會(huì)看到當(dāng)前SQL Server代理的日志還有最近的日志。雙擊【當(dāng)前】(或右擊選擇【查看代理日志】)你會(huì)看到SQL Server日志查看器,在查看器里當(dāng)前SQL Server代理的錯(cuò)誤日志已被勾選(如插圖4所示)。

插圖4:當(dāng)前SQL Server代理日志文件的日志文件查看器

這和在插圖3里顯示的日志文件一樣,但看起來更直觀,更好管理。首先你會(huì)注意到的是現(xiàn)在事件分為:信息,警告和錯(cuò)誤。使用篩選按鈕(如插圖5),你可以增加自己的篩選條件來限制SQL Server代理錯(cuò)誤日志的項(xiàng)目(或SQL Server的任何錯(cuò)誤日志,你已經(jīng)看到,在日志文件查看器里,你可以看到所有的日志)

插圖5:日志文件查看器的篩選設(shè)置

日志文件內(nèi)容

在SQL Server代理日志的開始就有信息消息。我們每步都過一遍,簡(jiǎn)單介紹下消息的意思。

[393] 正在等待 SQL Server 恢復(fù)數(shù)據(jù)庫...

SQL Server代理服務(wù)已經(jīng)啟動(dòng),但還不能配置和運(yùn)行它,因?yàn)閙sdb數(shù)據(jù)庫還不可用。SQL Server代理的大部分配置和設(shè)置都保存在msdb。部分配置細(xì)信息保存在系統(tǒng)注冊(cè)表里。SQL Server不能啟動(dòng)直到msdb數(shù)據(jù)庫恢復(fù)。消息前的數(shù)字(393)是SQL Sever代理的內(nèi)部信息號(hào),本人從沒見過公開文檔記錄SQL Agent的錯(cuò)誤編號(hào)。

[100] Microsoft SQLServerAgent 版本 10.50.1600.1 (內(nèi)部版本號(hào) x86 unicode 零售): 進(jìn)程 ID 3412

這是一條非常有用的信息。SQL Server代理版本號(hào)(即版本、服務(wù)包、和修補(bǔ)程序)。在此例中,它是SQL Server 2008 R2,采用sp1更新包。你可以在SQLServerCentral找到版本號(hào)。
接下來的事情是,這是一個(gè)SQL Server x86版本(即32位),這是一個(gè)標(biāo)準(zhǔn)的零售版本的產(chǎn)品。最后,對(duì)SQL Server代理服務(wù)的Windows進(jìn)程ID標(biāo)識(shí)。如果你使用Windows故障排除工具(即使是簡(jiǎn)單的任務(wù)管理器),你會(huì)看到一個(gè)進(jìn)程ID,這將幫助 你把SQL Server代理服務(wù)關(guān)聯(lián)到Windows信息。

插圖6:有PID列顯示的任務(wù)管理器

[101] SQL Server PC201510181429 版本 10.50.1600 (連接限制: 0)

這一消息標(biāo)識(shí)SQL服務(wù)器的名稱(PC201510181429),以及SQL Server的版本號(hào)。注意“0連接限制”--即是沒有特定的配置,因此允許無限的連接(直到耗盡內(nèi)存)。

[102] SQL Server ODBC 驅(qū)動(dòng)程序版本 10.50.1600
[103] 驅(qū)動(dòng)程序使用的 NetLib 是 DBNETLIB.DLL;本地主機(jī)服務(wù)器是

這兩則消息表明使用ODBC的版本號(hào)(SQL Server代理使用ODBC連接回SQL服務(wù)器本地副本,事實(shí)上,它是用當(dāng)?shù)氐腄BNETLIB.DLL為連接。

[310] 檢測(cè)到 2 個(gè)處理器和 3327 MB RAM
[339] 本地計(jì)算機(jī)是 PC201510181429,運(yùn)行的是 Windows NT 6.1 (7601) Service Pack 1

接下來的兩行顯示的SQL服務(wù)器CPU和內(nèi)存配置,以及Windows版本。

[432] 子系統(tǒng)緩存中有 12 個(gè)子系統(tǒng)

這是第二篇(SQL Server代理作業(yè)步驟和子系統(tǒng))討論過的SQL Server代理子系統(tǒng)。作業(yè)下有各種類型可以運(yùn)行子系統(tǒng)(如CmdExec、ActiveX 腳本)以及一些支持復(fù)制,分析服務(wù)的子系統(tǒng),你可以在msdb.dbo.syssubsystems表中查看子系統(tǒng)清單。

[364] 尚未啟動(dòng) Messenger 服務(wù) - 將不發(fā)送 NetSend 通知

雖然這個(gè)歸類為一個(gè)錯(cuò)誤,在大部分系統(tǒng)上你可以安全地忽略。Net send通知,已經(jīng)從SQL Server的幾個(gè)版本中取消,并且相關(guān)的Windows服務(wù)默認(rèn)不是開啟的。如果你還在使用Net send消息,看到了這樣的錯(cuò)誤,你需要更改Windows Messenger服務(wù)為自動(dòng)啟動(dòng)。

[129] SQLSERVERAGENT 在 Windows NT 服務(wù)控制下啟動(dòng)

這個(gè)消息表明,SQL Server代理作為服務(wù)啟動(dòng),而不是在命令提示符窗口。

[260] 無法啟動(dòng)郵件會(huì)話(原因: Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException: 無法從數(shù)據(jù)庫中讀取郵件配置信息。...... [355] 郵件系統(tǒng)初始化失敗;請(qǐng)檢查配置設(shè)置

這些消息表明在數(shù)據(jù)庫郵件配置中出錯(cuò)?;仡櫟谒钠獢?shù)據(jù)庫郵件,查看是否有類似的問題。

[396] 尚未定義空閑 CPU 條件 - OnIdle 作業(yè)計(jì)劃將不起任何作用

這條警告表明一個(gè)SQL Server代理設(shè)置沒有配置,可能阻止某些作業(yè)運(yùn)行。你可以設(shè)置作業(yè)在CPU“空閑”時(shí)運(yùn)行(在第一篇提到過)。然而,在這個(gè)系統(tǒng)中空閑的定義還沒有被 設(shè)置。在SSMS配置此選項(xiàng),右擊SQL Server代理,選擇屬性,然后單擊高級(jí)選項(xiàng)卡。配置空閑CPU條件如插圖7所示

插圖7:配置空閑CPU條件

你可以想象,在你的SQL Server代理錯(cuò)誤日志還會(huì)有許多其他的錯(cuò)誤,你應(yīng)該定期檢查日志。請(qǐng)牢記,代理日志不是用來排查作業(yè)故障的,你需要查看每個(gè)失敗作業(yè)步驟的歷史記錄。我們?cè)诤罄m(xù)章節(jié)會(huì)做更多的故障排除。

配置SQL Server代理錯(cuò)誤日志

您可以在SSMS中配置一些SQL Server代理錯(cuò)誤日志的屬性,另一些屬性需要使用注冊(cè)表編輯器(這是不支持的,所以不建議在生產(chǎn)系統(tǒng))。
右 擊SSMS中SQL Server代理->錯(cuò)誤日志,你會(huì)看到一組選項(xiàng)。首先是“配置”,選擇該選項(xiàng),你會(huì)看到類似插圖8。你可以更改SQL Server代理錯(cuò)誤日志文件的存放位置(不推薦),同樣可以更改代理日志級(jí)別。這些設(shè)置不能憑直觀分辨–如果你勾選“錯(cuò)誤”,你會(huì)看到錯(cuò)誤和信息性消 息。如果你勾選“警告”,你會(huì)看到警告和信息性消息。如果你只勾選信息,在錯(cuò)誤日志中你看不到任何錯(cuò)誤或警告消息。
對(duì)話框中另一選項(xiàng)是,寫入OEM錯(cuò)誤日志,意味著寫一個(gè)非Unicode的錯(cuò)誤日志文件。理論上你可以通過它節(jié)省空間,但也不推薦。

插圖8——配置SQL Server代理

退出插圖8,右擊錯(cuò)誤日志,另一個(gè)選項(xiàng)是“回收”。此選項(xiàng)會(huì)關(guān)閉現(xiàn)有的SQL Server代理錯(cuò)誤日志并開始一個(gè)新的日志文件,重命名當(dāng)前SQLAGENT.OUT文件為SQLAGENT.1(所有舊的文件后綴數(shù)字遞增,如 SQLAGENT.1變成SQLAGENT.2)。如果你要將當(dāng)前的日志文件發(fā)送給SQL Server產(chǎn)品支持,這樣操作將非常有用。
SQL Server代理一些其他配置需在注冊(cè)表中設(shè)置(事實(shí)上,上面所做操作的設(shè)置都會(huì)更改注冊(cè)表中對(duì)應(yīng)的鍵值)。記住不建議直接修改注冊(cè)表,所以更改這些設(shè)置 要你自己承擔(dān)風(fēng)險(xiǎn)。然而,如果你想查看可用的設(shè)置(一些SQL Server代理設(shè)置只能在注冊(cè)表中修改),你可以在注冊(cè)表中SQL Server實(shí)例下查看可用的注冊(cè)表鍵設(shè)置。例如,在我的機(jī)器上,注冊(cè)表鍵位于HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\SQLServerAgent,如插圖9所示

插圖9:SQL Server代理的注冊(cè)表項(xiàng)

如果你的SQL Server代理配置真的有問題時(shí),可能需要描述(或?qū)С?這些設(shè)置給產(chǎn)品支持。

下篇預(yù)告

SQL Server代理錯(cuò)誤日志包含很多有用信息(SQL Server代理,SQL Server和Windows服務(wù)器)。你可以使用錯(cuò)誤日志解決SQL Server代理服務(wù)中的錯(cuò)誤,并了解日志中常見的信息。本文還介紹了如何解決SQL Server代理中一些最常見的錯(cuò)誤。
有了前面的SQL Server代理基礎(chǔ)知識(shí),第六篇將深入挖掘SQL Server代理作業(yè)步驟和工作流。

原文:http://www.sqlservercentral.com/articles/Stairway+Series/72456/

標(biāo)簽:廣東 濟(jì)源 武威 汕頭 泰安 濟(jì)寧 安徽 臺(tái)州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL Server代理:理解SQL代理錯(cuò)誤日志處理方法》,本文關(guān)鍵詞  SQL,Server,代理,理解,錯(cuò)誤,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL Server代理:理解SQL代理錯(cuò)誤日志處理方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQL Server代理:理解SQL代理錯(cuò)誤日志處理方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章