使用Sql Server警報(bào)的疑難問題解決
發(fā)布時(shí)間:2008-07-19 閱讀數(shù): 次 來源:網(wǎng)樂原科技
如果你在使用Microsoft Sql Server中警報(bào)(Alerts)遇到了問題,請(qǐng)你查看這篇文章以獲取可能的解決方案。
1.檢查你是否使用了最新的Sql Server service pack
這是因?yàn)樵谧钚碌腟ql Server service pack中已經(jīng)修補(bǔ)了很多Sql Server使用警告(Alerts)的漏洞。你應(yīng)該確保在你的系統(tǒng)中已經(jīng)安裝了最新的Sql Server service pack補(bǔ)丁包。
2.檢查SqlServerAgent服務(wù)的帳戶是否作為成員運(yùn)行在域用戶群組(Domain User Group)下
LocalSystem帳戶它沒有訪問網(wǎng)絡(luò)的權(quán)限。所以,如果你需要將事件記錄在其他運(yùn)行有Windows NT或Windows 2000機(jī)器上的應(yīng)用程序日志上,或者你的作業(yè)(jobs)需要跨網(wǎng)絡(luò)的資源,或者你需要通過e-mail或者pagers通知操作者,這時(shí)候,你就需要將SalServerAgent服務(wù)的帳戶設(shè)置在域用戶群組(Domain User Group)下作為它的成員。
3.如果所定義的警報(bào)都沒有觸發(fā),檢查SqlServerAgent和EventLog服務(wù)是否都在運(yùn)行
如果你需要讓你定義的警報(bào)被觸發(fā),這些服務(wù)必須被開啟。所以,如果這些服務(wù)沒有被運(yùn)行的話,請(qǐng)運(yùn)行它們。
4.如果有某個(gè)警報(bào)沒有被觸發(fā),請(qǐng)確保它們是否被啟用
警報(bào)可以被啟用或禁用,為了檢查一個(gè)警報(bào)是否被啟用,你應(yīng)該做以下這些步驟:
1. 運(yùn)行Sql Server Enterprise Manager
2. 請(qǐng)打開服務(wù)器群組,然后打開某個(gè)服務(wù)器
3. 請(qǐng)打開管理(Management),然后再打開Sql Server Agent
4. 雙擊合適的警報(bào)以查看這個(gè)警報(bào)是否被啟用了
5.檢查警報(bào)的歷史值以確定警報(bào)最后工作的日期和時(shí)間
為了檢查一個(gè)警報(bào)的歷史值,你應(yīng)該做以下這些事情:
1. 運(yùn)行Sql Server Enterprise Manager
2. 請(qǐng)打開服務(wù)器群組,然后打開某個(gè)服務(wù)器
3. 請(qǐng)打開管理(Management),然后再打開Sql Server Agent
4. 雙擊合適的警報(bào)以查看警報(bào)的歷史值
6.核對(duì)每20秒維護(hù)的計(jì)數(shù)器值
因?yàn)镾ql Server Agent每20秒間隔維護(hù)一個(gè)性能計(jì)數(shù)器,如果發(fā)現(xiàn)這個(gè)性能計(jì)數(shù)器只有幾秒鐘(少于20秒)才維護(hù)一次,那么極有可能你的這個(gè)警報(bào)將不會(huì)被觸發(fā)。
7.檢查Sql Server錯(cuò)誤日志,Sql Server Agent錯(cuò)誤日志以及Windows NT和Windows 2000的應(yīng)用程序日志以獲得有關(guān)錯(cuò)誤描述的更多詳細(xì)信息
仔細(xì)檢查核對(duì)當(dāng)產(chǎn)生警報(bào)失敗事件時(shí),被記錄在Sql Server錯(cuò)誤日志,Sql Server Agent錯(cuò)誤日志以及Windows NT和Windows 2000的應(yīng)用程序日志中的日期和時(shí)間以及對(duì)錯(cuò)誤的描述能幫助你分析產(chǎn)生警報(bào)失敗事件的原因。
8.如果警報(bào)被觸發(fā)了,但是這時(shí)候操作員卻沒有收到任何通知,請(qǐng)嘗試手動(dòng)使用"e-mail","pager"或者用"net send"將信息發(fā)送給操作員
在很多情況下,你輸入了一個(gè)錯(cuò)誤的"e-mail","pager"地址,或者"net send"了一個(gè)錯(cuò)誤的地址,就會(huì)產(chǎn)生標(biāo)題所描述的這個(gè)問題。如果你要手動(dòng)的使用"e-mail","pager"或者用"net send"將信息發(fā)送個(gè)操作員,請(qǐng)檢查運(yùn)行其下的Sql Server Agent的帳戶,并且也要核對(duì)在日程表中有關(guān)操作員的信息。
9.如果警報(bào)被觸發(fā)了,但是操作員沒有能及時(shí)的收到通知,請(qǐng)減少這個(gè)警報(bào)"Delay between responses"的設(shè)置,然后將信息發(fā)送給少數(shù)的操作員以作為測(cè)試
為了減少這個(gè)警報(bào)的"Delay between responses"設(shè)置,你應(yīng)該做以下這些事:
1. 運(yùn)行Sql Server Enterprise Manager
2. 請(qǐng)打開服務(wù)器群組,然后打開某個(gè)服務(wù)器
3. 請(qǐng)打開管理(Management),然后再打開Sql Server Agent
4. 雙擊合適的警報(bào),并且選擇"Response"Tab頁
5. 指定新的"Delay between response"設(shè)置
10.警報(bào)不能使用xp_logevent發(fā)送e-mail通知或者產(chǎn)生錯(cuò)誤
這是Sql Server 7.0和Sql Server 2000的bug。如果你定義的這個(gè)警報(bào)是受限于指定的數(shù)據(jù)庫(kù)而不是master數(shù)據(jù)庫(kù),就會(huì)產(chǎn)生標(biāo)題所描述的這種情況。為了使它們工作,你可以將警報(bào)定義于master數(shù)據(jù)庫(kù)或者所有的數(shù)據(jù)庫(kù)。為了將警報(bào)定義于所有的數(shù)據(jù)庫(kù),你應(yīng)該按以下步驟來做:
1. 運(yùn)行Sql Server Enterprise Manager
2. 請(qǐng)打開服務(wù)器群組,然后打開某個(gè)服務(wù)器
3. 請(qǐng)打開管理(Management),然后再打開Sql Server Agent
4. 雙擊合適的警報(bào)并且在Database name下列列表框中選擇"All Databases"(所有數(shù)據(jù)庫(kù))
11.當(dāng)安全審核被啟用時(shí),警報(bào)被不正確的觸發(fā)了
這是Sql Server 7.0和Sql Server 2000的bug。這個(gè)bug在Sql Server 2000的service pack 1和Sql Server 7.0的service pack 4中被修補(bǔ)了。為了避免出現(xiàn)以上這個(gè)問題,你要將安全審核禁用或者安裝以上所提到的Service Pack。
12.在安裝好了Sql Server 7.0 service pack 3后,你的Sql Server Agent下的警報(bào)可能不工作
這是Sql Server 7.0 service pack 3的bug,為了避免出現(xiàn)這個(gè)問題,你應(yīng)該安裝最新的Sql Server 7.0 service pack 4。
13.每20秒對(duì)于有關(guān)性能狀態(tài)的響應(yīng)就被發(fā)送了,而不管對(duì)于警報(bào)的"Delay between responses"的設(shè)置
這是Sql Server 7.0的bug,為了避免出現(xiàn)這個(gè)問題,你應(yīng)該安裝Sql Server 7.0的service pack 1或者更高版本的service pack。