修復系統(tǒng)表(表錯誤- 對象 id 2。text、ntext 或 image 節(jié)點(位于頁 (1-875),槽 0,文本 id 177078272)與該節(jié)點位于頁 (1-500),槽 14 處的引用不匹配)
修復數(shù)據(jù)庫,應該是一個再熟悉不過的“陌生”東東了。以往修復就使用一般的修復語句即可,今天遇到一個頑固不化的錯誤,nnd,
報錯信息如下:
服務器: 消息 8929,級別 16,狀態(tài) 1,行 1
對象 id 2: 在文本 id 177078272 中發(fā)現(xiàn)錯誤,該文本的所有者是由 rid = (1:627:1) id = 1899153811 and indid = 10 標識的數(shù)據(jù)記錄。
服務器: 消息 8961,級別 16,狀態(tài) 1,行 1
表錯誤: 對象 id 2。text、ntext 或 image 節(jié)點(位于頁 (1:875),槽 0,文本 id 177078272)與該節(jié)點位于頁 (1:500),槽 14 處的引用不匹配。
'yinyi' 的 dbcc 結果。
'sysobjects' 的 dbcc 結果。
對象 'sysobjects' 有 419 行,這些行位于 7 頁中。
'sysindexes' 的 dbcc 結果。
對象 'sysindexes' 有 451 行,這些行位于 22 頁中。
checkdb 發(fā)現(xiàn)了 0 個分配錯誤和 2 個一致性錯誤(在表 'sysindexes' 中,該表的對象 id 為 2)。
'syscolumns' 的 dbcc 結果。
checkdb 發(fā)現(xiàn)了 0 個分配錯誤和 2 個一致性錯誤(在數(shù)據(jù)庫 'yinyi' 中)。
dbcc 執(zhí)行完畢。如果 dbcc 輸出了錯誤信息,請與系統(tǒng)管理員聯(lián)系。
這個是已經(jīng)經(jīng)過修復后仍然存在的問題,因為提示的是系統(tǒng)表sysobjects表存在問題,且有提示了rid及id,我將此條數(shù)據(jù)查詢出來,交核對了同類型的數(shù)據(jù)庫,也就一個欄位不一樣,且表示的是一個所影響的行數(shù),其它并無相應的差別。本來打算放棄的,不過后又嘗試著將一個經(jīng)常會使用到的一個表的數(shù)據(jù)全部清除(truncate),再進行checkdb則不再出現(xiàn)錯誤。然后將此表中的數(shù)據(jù)先查詢出來放到臨時表,再清掉所有的數(shù)據(jù),再從臨時表中insert進來,此時再來checkdb,
checkdb 發(fā)現(xiàn)了 0 個分配錯誤和0 個一致性錯誤(在數(shù)據(jù)庫 'yinyi' 中)。
dbcc 執(zhí)行完畢。如果 dbcc 輸出了錯誤信息,請與系統(tǒng)管理員聯(lián)系。
大功告成,此現(xiàn)象說明了其實checkdb出來若存在系統(tǒng)表有問題的情況下,我們的系統(tǒng)不會那么容易壞的。你首先需要檢查的是你平時會用到的表,即使是checktable也不一定會出錯,只能根據(jù)你軟件中在哪一個點兒會彈錯,分析用到的表,進行依次的排除。
此篇文章寫到這里希望遇到類似“表錯誤: 對象 id 2。text、ntext 或 image 節(jié)點(位于頁 (1:875),槽 0,文本 id 177078272)與該節(jié)點位于頁 (1:500),槽 14 處的引用不匹配”問題的朋友們細心點兒,希望對大家有幫助!
更多信息請查看IT技術專欄