一 概述
默認(rèn)情況下,sql server 代理創(chuàng)建錯(cuò)誤日志來記錄警告和錯(cuò)誤。日志中顯示下列警告和錯(cuò)誤:
警告消息,提供有關(guān)潛在問題的信息,例如“作業(yè) 在執(zhí)行時(shí)被刪除”。
錯(cuò)誤消息,通常需要系統(tǒng)管理員干預(yù),例如“無法啟動(dòng)郵件會(huì)話”??梢酝ㄟ^ net send 將錯(cuò)誤消息發(fā)送給特定用戶或計(jì)算機(jī)。
默認(rèn)情況下,執(zhí)行跟蹤消息不寫入 sql server代理日志錯(cuò)誤,因?yàn)樗鼈儠?huì)將日志填滿。如果錯(cuò)誤日志已滿,會(huì)降低選擇和分析更嚴(yán)重的錯(cuò)誤的能力。因?yàn)槿罩緯?huì)增加服務(wù)器的處理負(fù)荷,所以請務(wù)必仔細(xì)考慮是否值得將執(zhí)行跟蹤消息捕獲到錯(cuò)誤日志中。通常,最好僅在調(diào)試某個(gè)特定問題時(shí)捕獲所有消息。
二 錯(cuò)誤日志的存放目錄和個(gè)數(shù)
sql server 最多可以維護(hù) 1個(gè)當(dāng)前錯(cuò)誤日志記錄 和 9個(gè) sql server 代理錯(cuò)誤日志歷史記錄。每個(gè)存檔日志都有一個(gè)擴(kuò)展名,指示該日志的相對存在時(shí)間。例如,擴(kuò)展名 .1 表示最新的存檔錯(cuò)誤日志,而擴(kuò)展名 .9 表示最舊的存檔錯(cuò)誤日志。
sql server 代理停止后,可以修改 sql server 代理錯(cuò)誤日志的位置。如果錯(cuò)誤日志為空,則無法打開日志??梢噪S時(shí)循環(huán)訪問 sql server 代理日志,無需停止 sql server 代理。
三 基本管理任務(wù)
查看 sql server 代理錯(cuò)誤日志 :企業(yè)管理器;通過openrowset讀取文件;xp_cmdshell下執(zhí)行dos輸出的type命令等;xp_cmdshell下bcp進(jìn)入數(shù)據(jù)庫系統(tǒng)的表中;exec xp_cmdshell 'type c:program filesmicrosoft sql servermssql.1mssqllogsqlagent.out'
重命名 sql server 代理錯(cuò)誤日志 ,重啟sql代理后生效 :企業(yè)管理器;exec msdb.dbo.sp_set_sqlagent_properties @errorlog_file=n'c:program filesmicrosoft sql servermssql.1mssqllogsqlagent.out'
發(fā)送 sql server 代理錯(cuò)誤消息 ,使用net send 發(fā)送消息,依賴于windows的messenges 服務(wù) :企業(yè)管理器;exec msdb.dbo.sp_set_sqlagent_properties @error_recipient=n'jinsen'
將執(zhí)行跟蹤消息寫入到 sql server 代理錯(cuò)誤日志中 :配置sql代理,記錄跟蹤內(nèi)容;
配置代理錯(cuò)誤日志的信息內(nèi)容類型(錯(cuò)誤 1、警告 2、信息(包含錯(cuò)誤跟蹤) 4),類型可以疊加:企業(yè)管理器;exec msdb.dbo.sp_set_sqlagent_properties @errorlogging_level={1|2|4|3|5|7|6}
配置代理錯(cuò)誤日志的信息內(nèi)容的編碼類型 :企業(yè)管理器;exec msdb.dbo.sp_set_sqlagent_properties @oem_errorlog={0|1}
回收錯(cuò)誤日志的空間 :使用企業(yè)管理器;exec msdb.dbo.sp_cycle_agent_errorlog
配置代理錯(cuò)誤日志文件記錄數(shù)的大小(行數(shù)):企業(yè)管理器;exec msdb.dbo.sp_set_sqlagent_properties @jobhistory_max_rows=1000,
配置代理錯(cuò)誤日志文件記錄每個(gè)作業(yè)的最大記錄的大小(行數(shù)):企業(yè)管理器;exec msdb.dbo.sp_set_sqlagent_properties @jobhistory_max_rows_per_job=100
四 常見問題
q:為什么sql代理錯(cuò)誤日志文件的內(nèi)容始終為空,無法進(jìn)行錯(cuò)誤信息的日志記錄?
a:重新配置sql代理錯(cuò)誤日志文件的編碼格式為非oem——即配置為unicode編碼,可以解決問題
q:為什么在使用企業(yè)管理器查看sql代理錯(cuò)誤日志時(shí),日志查看器出現(xiàn)異常,“unicode file expected”?
a:重新配置sql代理錯(cuò)誤日志文件的編碼格式為非oem——即配置為unicode編碼,可以解決問題
q:為什么企業(yè)管理器、sms 無法回收sql2000的sql代理錯(cuò)誤日志文件?
a:sqlserver2000的sql 代理錯(cuò)誤日志的文件 不支持回收!
更多信息請查看IT技術(shù)專欄