DBCC sql 錯(cuò)誤信息的嚴(yán)重級(jí)別(master sysmessages)
廣告:
嚴(yán)重級(jí)別為 10 的信息為信息消息,表明問(wèn)題是由于輸入信息時(shí)發(fā)生錯(cuò)誤而產(chǎn)生的。嚴(yán)重級(jí)別為 11 到 16 的錯(cuò)誤是由用戶產(chǎn)生的,可以由用戶修正。
嚴(yán)重級(jí)別從 17 到 25 的錯(cuò)誤表明軟件或硬件錯(cuò)誤。當(dāng)所發(fā)生的問(wèn)題產(chǎn)生嚴(yán)重級(jí)別為 17 或更高的錯(cuò)誤時(shí),應(yīng)通知系統(tǒng)管理員。系統(tǒng)管理員必須解析這些錯(cuò)誤,并跟蹤錯(cuò)誤發(fā)生的頻率。當(dāng)發(fā)生級(jí)別為 17、18 或 19 的錯(cuò)誤時(shí),盡管某個(gè)特定的語(yǔ)句無(wú)法執(zhí)行,但仍可繼續(xù)。
系統(tǒng)管理員應(yīng)對(duì)能生成嚴(yán)重級(jí)別從 17 到 25 的所有問(wèn)題進(jìn)行監(jiān)視,并打印包含信息的錯(cuò)誤日志,回找發(fā)生錯(cuò)誤的位置。
如果問(wèn)題影響了整個(gè)數(shù)據(jù)庫(kù),可以使用 DBCC CHECKDB(數(shù)據(jù)庫(kù))確定損壞的程度。DBCC 可以對(duì)必須刪除的一些對(duì)象進(jìn)行標(biāo)識(shí),并有選擇地修復(fù)損壞。如果損壞范圍大,則必須對(duì)數(shù)據(jù)庫(kù)進(jìn)行還原。
用 RAISERROR 指定用戶定義的錯(cuò)誤信息時(shí),使用大于 50,000 的錯(cuò)誤信息號(hào)以及從 0 到 18 的嚴(yán)重級(jí)別。只有系統(tǒng)管理員可以發(fā)出嚴(yán)重級(jí)別從 19 到 25 的 RAISERROR。
嚴(yán)重級(jí)別為 10 的錯(cuò)誤信息為信息錯(cuò)誤。嚴(yán)重級(jí)別從 11 到 16 的錯(cuò)誤信息由用戶生成并可以由用戶修正。嚴(yán)重級(jí)別為 17 和 18 的錯(cuò)誤信息是由資源或系統(tǒng)錯(cuò)誤產(chǎn)生的;用戶會(huì)話不會(huì)中斷。
使用 sp_addmessage,可以將嚴(yán)重級(jí)別從 1 到 25 的用戶定義消息添加到 master..sysmessages。只有系統(tǒng)管理員可以添加嚴(yán)重級(jí)別從 19 到 25 的消息。
對(duì)于嚴(yán)重級(jí)別為 17 和更高的錯(cuò)誤信息,應(yīng)向系統(tǒng)管理員報(bào)告。
嚴(yán)重級(jí)別 10:狀態(tài)信息
這是信息消息,表明問(wèn)題是由于用戶輸入信息有誤而產(chǎn)生的。嚴(yán)重級(jí)別 0 在 SQL Server 中是見(jiàn)不到的。
嚴(yán)重級(jí)別 11 到 16
這些消息表明錯(cuò)誤可由用戶修正。
嚴(yán)重級(jí)別 17:資源不足
這些消息表明語(yǔ)句導(dǎo)致 SQL Server 用盡資源(如數(shù)據(jù)庫(kù)的鎖或磁盤(pán)空間)或超出了系統(tǒng)管理員設(shè)置的一些限制。
嚴(yán)重級(jí)別 18:檢測(cè)到非嚴(yán)重內(nèi)部錯(cuò)誤
這些消息表明存在某種類(lèi)型的內(nèi)部軟件問(wèn)題,但語(yǔ)句執(zhí)行完畢,并且到 SQL Server 的連接還保持著。例如,當(dāng) SQL Server 查詢處理器在進(jìn)行查詢優(yōu)化時(shí)檢測(cè)到一個(gè)內(nèi)部錯(cuò)誤,則出現(xiàn)嚴(yán)重級(jí)別為 18 的消息。每次出現(xiàn)嚴(yán)重級(jí)別為 18 的消息時(shí),都應(yīng)告知系統(tǒng)管理員。
嚴(yán)重級(jí)別 19:資源中發(fā)生 SQL Server 錯(cuò)誤
這些消息表明已超出了 nonconfigurable 內(nèi)部限制,并且當(dāng)前批處理終止。嚴(yán)重級(jí)別 19 錯(cuò)誤很少發(fā)生;但是,一旦發(fā)生,必須由系統(tǒng)管理員或主要支持提供者修正。每次出現(xiàn)嚴(yán)重級(jí)別為 19 的消息時(shí),都應(yīng)告知系統(tǒng)管理員。
嚴(yán)重級(jí)別 20 到 25
嚴(yán)重級(jí)別從 20 到 25 表明有系統(tǒng)問(wèn)題。這是些嚴(yán)重錯(cuò)誤,意味著進(jìn)程(完成語(yǔ)句中指定任務(wù)的程序代碼)將不再運(yùn)行。進(jìn)程在停止前先凍結(jié),記錄有關(guān)發(fā)生內(nèi)容的信息,然后終止。到 SQL Server 的客戶連接將關(guān)閉,并且根據(jù)存在問(wèn)題的不同,客戶端有可能無(wú)法重新連接。
嚴(yán)重級(jí)別為 19 或更高的錯(cuò)誤信息將停止當(dāng)前的批處理。嚴(yán)重級(jí)別為 20 或更高的錯(cuò)誤信息被認(rèn)為是嚴(yán)重錯(cuò)誤,將終止客戶連接。此范圍的錯(cuò)誤信息可能影響數(shù)據(jù)庫(kù)中的所有進(jìn)程,并可能表明數(shù)據(jù)庫(kù)或?qū)ο髶p壞。嚴(yán)重級(jí)別從 19 到 25 的錯(cuò)誤信息均寫(xiě)入錯(cuò)誤日志。
嚴(yán)重級(jí)別 20:當(dāng)前進(jìn)程中的 SQL Server 嚴(yán)重錯(cuò)誤
這些消息表明語(yǔ)句遇到了問(wèn)題。由于該問(wèn)題所影響的只是當(dāng)前進(jìn)程,數(shù)據(jù)庫(kù)本身?yè)p壞的可能性不大。
嚴(yán)重級(jí)別 21:數(shù)據(jù)庫(kù) (dbid) 進(jìn)程中的 SQL Server 嚴(yán)重錯(cuò)誤
這些消息表明遇到了影響當(dāng)前數(shù)據(jù)庫(kù)中所有進(jìn)程的問(wèn)題;但數(shù)據(jù)庫(kù)本身?yè)p壞的可能性不大。
嚴(yán)重級(jí)別 22:SQL Server 嚴(yán)重錯(cuò)誤表的完整性置疑
這些消息表明消息中所指定的表或索引已因軟件或硬件問(wèn)題而損壞。
嚴(yán)重級(jí)別 22 錯(cuò)誤很少發(fā)生;但是,如果遇到該錯(cuò)誤,請(qǐng)運(yùn)行 DBCC CHECKDB 確定數(shù)據(jù)庫(kù)中是否有其它對(duì)象也受損壞。問(wèn)題有可能只存在于超速緩存中,而不是存在于磁盤(pán)本身。如果是這樣,重新啟動(dòng) SQL Server 將修正該問(wèn)題。要繼續(xù)工作,必須重新連接到 SQL Server。否則,用 DBCC 修復(fù)該問(wèn)題。有些情況下,有必要還原數(shù)據(jù)庫(kù)。
如果重新啟動(dòng)幫助不大,則問(wèn)題存在于磁盤(pán)上。有時(shí),摧毀在錯(cuò)誤信息中指定的對(duì)象可以解決該問(wèn)題。例如,如果消息說(shuō) SQL Server 在非聚集索引中發(fā)現(xiàn)長(zhǎng)度為 0 的行,刪除該索引然后重建。
嚴(yán)重級(jí)別 23:SQL Server 嚴(yán)重錯(cuò)誤:數(shù)據(jù)庫(kù)完整性置疑
這些消息表明由于硬件或軟件問(wèn)題,整個(gè)數(shù)據(jù)庫(kù)完整性存在問(wèn)題。
嚴(yán)重級(jí)別 23 錯(cuò)誤很少發(fā)生;但是,如果遇到,請(qǐng)運(yùn)行 DBCC CHECKDB 確定損壞的程度。問(wèn)題有可能只存在于超速緩存中,而不是存在于磁盤(pán)本身。如果是這樣,重新啟動(dòng) SQL Server 將修正該問(wèn)題。要繼續(xù)工作,必須重新連接到 SQL Server。否則,用 DBCC 修復(fù)該問(wèn)題。有些情況下,有必要重新啟動(dòng)數(shù)據(jù)庫(kù)。
嚴(yán)重級(jí)別 24:硬件錯(cuò)誤
這些消息表明某些類(lèi)型的媒體失敗。系統(tǒng)管理員可能必須重新裝載數(shù)據(jù)庫(kù)。可能還有必要給硬件廠商打電話。
廣告: