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