【sql server】可能發生了架構損壞。請運行DBCC CHECKCATALOG.


前幾天群里一個朋友碰到一個架構損壞問題,我幫着看了一下很是令人頭禿。至今也沒解決

【0】前置信息

  MSSQL2005,簡單模式,2019-11-22有一次完整備份,庫只有4GB大小

【1】錯誤信息

【1.1】DBCC CHECKDB后報錯如下

      

 

【1.2】按照指示運行了DBCC CHECKCATALOG 命令后報錯如下

     

【1.3】DBCC CHECKCATALOG報錯日志

消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=434685938,referenced_minor_id=24)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=434685938,referenced_minor_id=33)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=434685938,referenced_minor_id=41)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=434685938,referenced_minor_id=42)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=434685938,referenced_minor_id=43)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=623393340,referenced_minor_id=1)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=623393340,referenced_minor_id=2)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=623393340,referenced_minor_id=3)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=623393340,referenced_minor_id=9)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=623393340,referenced_minor_id=10)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=623393340,referenced_minor_id=11)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=623393340,referenced_minor_id=12)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=623393340,referenced_minor_id=13)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=623393340,referenced_minor_id=14)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=623393340,referenced_minor_id=15)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=623393340,referenced_minor_id=17)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=881411651,referenced_minor_id=1)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=881411651,referenced_minor_id=112)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=911394366,referenced_minor_id=5)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=1695397159,referenced_minor_id=1)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=1695397159,referenced_minor_id=2)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=1695397159,referenced_minor_id=3)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=1695397159,referenced_minor_id=4)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=1695397159,referenced_minor_id=5)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=1695397159,referenced_minor_id=6)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=1695397159,referenced_minor_id=7)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=1695397159,referenced_minor_id=8)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=1695397159,referenced_minor_id=9)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=1695397159,referenced_minor_id=10)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=1695397159,referenced_minor_id=11)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=2047398413,referenced_minor_id=1)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=13984618,column_id=0,referenced_major_id=2047398413,referenced_minor_id=2)的屬性(object_id=13984618)在 sys.objects 中沒有匹配的行(object_id=13984618)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=45984732,column_id=0,referenced_major_id=676197459,referenced_minor_id=1)的屬性(object_id=45984732)在 sys.objects 中沒有匹配的行(object_id=45984732)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=45984732,column_id=0,referenced_major_id=676197459,referenced_minor_id=2)的屬性(object_id=45984732)在 sys.objects 中沒有匹配的行(object_id=45984732)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=45984732,column_id=0,referenced_major_id=676197459,referenced_minor_id=3)的屬性(object_id=45984732)在 sys.objects 中沒有匹配的行(object_id=45984732)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=45984732,column_id=0,referenced_major_id=1392593341,referenced_minor_id=43)的屬性(object_id=45984732)在 sys.objects 中沒有匹配的行(object_id=45984732)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=45984732,column_id=0,referenced_major_id=1575598043,referenced_minor_id=1)的屬性(object_id=45984732)在 sys.objects 中沒有匹配的行(object_id=45984732)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=45984732,column_id=0,referenced_major_id=1575598043,referenced_minor_id=7)的屬性(object_id=45984732)在 sys.objects 中沒有匹配的行(object_id=45984732)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=45984732,column_id=0,referenced_major_id=1575598043,referenced_minor_id=11)的屬性(object_id=45984732)在 sys.objects 中沒有匹配的行(object_id=45984732)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=2)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=5)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=10)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=13)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=16)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=17)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=18)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=19)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=24)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=25)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=26)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=27)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=28)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1117116362,referenced_minor_id=30)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1392593341,referenced_minor_id=1)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1392593341,referenced_minor_id=15)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1975599468,referenced_minor_id=1)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1975599468,referenced_minor_id=2)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1975599468,referenced_minor_id=3)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1975599468,referenced_minor_id=5)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1975599468,referenced_minor_id=7)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1975599468,referenced_minor_id=8)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=109984960,column_id=0,referenced_major_id=1975599468,referenced_minor_id=9)的屬性(object_id=109984960)在 sys.objects 中沒有匹配的行(object_id=109984960)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=141985074,column_id=0,referenced_major_id=286624064,referenced_minor_id=1)的屬性(object_id=141985074)在 sys.objects 中沒有匹配的行(object_id=141985074)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=141985074,column_id=0,referenced_major_id=1119212379,referenced_minor_id=6)的屬性(object_id=141985074)在 sys.objects 中沒有匹配的行(object_id=141985074)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=141985074,column_id=0,referenced_major_id=1190164627,referenced_minor_id=1)的屬性(object_id=141985074)在 sys.objects 中沒有匹配的行(object_id=141985074)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=141985074,column_id=0,referenced_major_id=1190164627,referenced_minor_id=7)的屬性(object_id=141985074)在 sys.objects 中沒有匹配的行(object_id=141985074)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=141985074,column_id=0,referenced_major_id=1926167249,referenced_minor_id=1)的屬性(object_id=141985074)在 sys.objects 中沒有匹配的行(object_id=141985074)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=141985074,column_id=0,referenced_major_id=1926167249,referenced_minor_id=6)的屬性(object_id=141985074)在 sys.objects 中沒有匹配的行(object_id=141985074)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=141985074,column_id=0,referenced_major_id=1926167249,referenced_minor_id=12)的屬性(object_id=141985074)在 sys.objects 中沒有匹配的行(object_id=141985074)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=141985074,column_id=0,referenced_major_id=1926167249,referenced_minor_id=65)的屬性(object_id=141985074)在 sys.objects 中沒有匹配的行(object_id=141985074)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=238116089,referenced_minor_id=27)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=1505596602,referenced_minor_id=1)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=1505596602,referenced_minor_id=3)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=1505596602,referenced_minor_id=5)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=1505596602,referenced_minor_id=6)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=1505596602,referenced_minor_id=7)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=1505596602,referenced_minor_id=14)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=1505596602,referenced_minor_id=34)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=1505596602,referenced_minor_id=51)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=1)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=2)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=3)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=4)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=5)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=6)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=7)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=8)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=9)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=10)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=11)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=12)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=13)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=14)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=15)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=16)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=17)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=18)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=19)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=20)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=21)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=22)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=23)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=24)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=25)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=26)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=27)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=28)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=29)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=31)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=32)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=33)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=34)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=35)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=36)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=37)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=38)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=39)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=41)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=42)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=43)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=44)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=45)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=46)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.sql_dependencies 中的行(class=0,object_id=1713466670,column_id=0,referenced_major_id=2130106629,referenced_minor_id=47)的屬性(object_id=1713466670)在 sys.objects 中沒有匹配的行(object_id=1713466670)。
消息 3853,級別 16,狀態 1,第 2 行
sys.columns 中的行(object_id=1661118300,column_id=25)的屬性(default_object_id=173985188)在 sys.objects 中沒有匹配的行(object_id=173985188)。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。

  由上述信息分析可得,sql_dependencies系統表存放着SP的依賴關系,sys.objects存放着所有數據庫對象信息

  我用上述錯誤代碼看了一下,有這么幾種情況。

    (1)是一個SP引用了另外一個SP,執行了另外一個SP,所以在關系依賴表中存在。

    (2)是一對多,一個SP中引用了多次、多個表操作,所以在關系依賴表中存在。

  根據上述信息故障原因有2,

  (1)其一為在系統表sys.sql_dependencies中引用的object_id在sys.objects中找不到了。

  (2)另外一個是,在sys.columns表中某些行對應的object_id在sys.objects中找不到了。

【1.4】查看壞頁是什么類型頁

 

SELECT DB_NAME(database_id),[file_id],page_id,
CASE event_type
WHEN 1 THEN '823 or 824 or Torn Page'
WHEN 2 THEN 'Bad Checksum'
WHEN 3 THEN 'Torn Page'
WHEN 4 THEN 'Restored'
WHEN 5 THEN 'Repaired (DBCC)'
WHEN 7 THEN 'Deallocated (DBCC)'
END,
error_count,
last_update_date
FROM msdb..suspect_pages

 

查看系統頁(管理區分配頁)是什么類型

什么是管理區分配頁?
管理區分配頁是數據文件中特殊的頁,用來跟蹤和管理區分配,本篇將關注三種:

全局分配映射表 (GAM):記錄已分配的區,對於一個數據文件,每4GB會有一個GAM頁,它的ID總是為2,之后每511,232頁出現一次。
        Page ID = 2 or Page ID % 511232

共享全局分配映射表 (SGAM) :記錄當前用作混合區且至少有一個未使用的頁的區,每4GB會有一個SGAM頁,它的ID總是為3,之后每511,232頁出現一次。
       Page ID = 3 or (Page ID – 1) % 511232

頁可用空間 (PFS):記錄每頁的分配狀態,是否已分配單個頁以及每頁的可用空間量,每64MB會有一個PFS頁,它的ID總是為1,之后每8,088頁出現一次。
       Page ID = 1 or Page ID % 8088

如果PAGE id是1/2/3,那么很明顯會知道他們是什么管理區分配頁,如果PAGE ID很大,那么我們有兩個辦法來區分它們:

一個辦法是采用SQL腳本計算:


Declare @PageID int;

-- Enter page number
-- e.g., 8088 = PFS page
Set @PageID = 8088;

Select Case
    When @PageID = 1 Or @PageID % 8088 = 0 Then 'Is PFS Page'
    When @PageID = 2 Or @PageID % 511232 = 0 Then 'Is GAM Page'
    When @PageID = 3 Or (@PageID - 1) % 511232 = 0 Then 'Is SGAM Page'
    Else 'Is Not PFS, GAM, or SGAM page'
    End

另一個辦法是采用DBCC PAGE來看它的m_type值:

 

正常頁查看

 

 

 【1.5】嘗試直接修復(DBCC CHECKALLOC(dbname,REPAIR_ALLOW_DATA_LOSS )

DBCC CHECKALLOC   
[  
    ( database_name | database_id | 0   
      [ , NOINDEX   
      | , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]  
    )  
    [ WITH   
        {   
          [ ALL_ERRORMSGS ]  
          [ , NO_INFOMSGS ]   
          [ , TABLOCK ]   
          [ , ESTIMATEONLY ]   
        }  
    ]  
]  

該命令官網:https://docs.microsoft.com/zh-cn/sql/t-sql/database-console-commands/dbcc-checkalloc-transact-sql?view=sql-server-ver15

 

【2】我的破爛解決思路

【2.1】先試試備份還原(失敗)

  

【2.2】刪除系統表,先讓該庫可以正常運行(成功)

  我想的一個辦法是刪除系統表(sys.sql_dependencies與sys.columns)中對 sys.objects 中找不到的object_id 的相關行,干掉不就完事了?

  我還是太年輕,不讓刪。。問過大佬們,都說2005及以上都不讓修改系統表了。

可行:后面發現原來這是視圖,要查看里頭具體的基表去刪除,且需要用單用戶+DAC方式登錄這樣才行,我用DAC就可以

      EXEC sp_configure 'show advanced options',1;

      RECONFIGURE WITH OVERRIDE;  

    --允許系統表更新
      exec sp_configure 'allow updates', 1
      RECONFIGURE WITH OVERRIDE;
 
        

  如果沒用DAC,或者操作的是系統視圖,而不是系統表,則會報錯:

    報錯:不允許對系統目錄進行即席更新。

這里不會的話,見【3】中操作    

【2.3】把數據轉移出去,或者刪除故障表(失敗)

  我怎么確定故障表?當然是先遍歷sys.tables中的用戶表,然后把所有數據insert into 到另外一個新建的庫。然后就發現某些表在select * into from table...的時候報錯。

  (1)轉移數據(大多數表數據是轉移出來了)  

    轉移:通過sys.tables表構造,select * into new_db.tabe_name from table_name....   還不能確定是否有漏表,只能對比一下11.22的那個備份,以及這段時間的新增的表(其實也沒有版本控制,腦殼疼)

    報錯信息忘記截圖了,大概是有6個表,各種報錯,忘記截圖了。核心報錯信息大概是,某個頁找不到數據、找不到對應的系統表及列之類的

    非故障表,轉移完之后,想想還有啥需要轉移?好像挺麻煩的,用戶信息也要轉移,SP(還是加密的!)、函數、觸發器、作業...真叫人頭禿。

    還有故障的表數據是不是真找不回來了呢?

  (2)刪除故障表

    使用drop故障表,也會報錯。

      

【2.4】插入當前的數據到11-22日的全備(失敗)

  還好是4G,要是庫大一點,我這個想法都不敢有。

  (1)update相同的ID

    問題來了,咋知道哪個是唯一鍵呢?

      當時想法,查主鍵不就得了。要是沒有主鍵呢?

      查自增鍵不就行了,誰知道自增鍵后面有沒有identity_insert 強制插入過呢?

      假設忽略這個可能,那么那種沒有自增沒有主鍵的表咋辦呢?根據字段判斷?那得一個一個寫,幾千個表不是崩潰嘛。。。。個人暫時沒想到解決辦法。。

  (2)假設我不update,我直接插入差異的數據。

      好像不太科學?萬一之前的數據有更新咋辦......

      先不管那么多,往回插入吧。那怎么區分差異數據?根據主鍵嘛、自增ID嘛,如果都沒有又咋辦呢?。。。。這,暫時沒想到解決辦法

  (3)刪掉11-22中的所有表數據,然后用當前庫插入回去

      好像是個不錯的想法,我開始delete,然后報錯一堆外鍵約束...腦殼疼

【2.5】利用11月22日的備份,刪除所有表構造select * into ...(失敗)

  直接把11.22日的備份庫刪掉所有表,然后通過select * into ...把 主庫表數據傳輸過來。

  問題:

    (1)select * into ...不會把約束、索引等信息一起復制過來

    (2)差異的觸發器、存儲過程、函數......咋弄呢

    (3)那6個報錯的表整個表數據都要放棄了嗎?

  突然發現和【2.3】區別不大。。。但至少,能夠較好的應用該庫,作業也不需要考慮太多了。

  我是不是可以直接復制數據,然后打開對象資源管理器詳細信息去復制作業、觸發器、函數等等呢,但我怕我想的這些對象不夠全面,會漏點啥。

  這些都還好,核心還是約束索引之類的,不過感覺也可以通過系統表生成出來。最后不得以只能這樣了

【總結】 

  后面朋友說他找到了一個收費的軟件破解版,可以直接讀取MDF進行修復重構,以此解決了。

  【1】如何找出是哪些object_id 數據庫對象丟失呢?

  【2】數據怎么盡可能少的丟失呢?

  【3】怎么修復才最方面最快捷呢?

  【4】可以在當前這個情況下,對當前庫修復嘛?

 

 到底常規方式應該咋修復處理呢?

  (使用單用戶模式啟動+DAC連接刪除系統表數據)

  如果損壞不多,應該使用2.2的方式刪除系統表,很多系統表修改、刪除報錯 是因為那個系統表是視圖,而不是真正的實際表,可以使用sp_helptext找到源表,然后進行對應刪除,最終解決。

  造成影響:失去依賴的存儲過程、表、列、數據信息 丟失。元數據信息找不到的對應頁、列 等信息丟失。

【3】DBCC CHECKDB 錯誤信息沒有列出具體對象信息(可以使用 DBCC CHECKCATALOG)

alter或drop某個存儲過程、或者打開存儲過程列表時,提示“架構損壞”。

  1. -- checkdb 中斷報錯
  2.  DBCC CHECKDB(DBName)
  3.   
  4.  --類似的,修復也報錯
  5.  DBCC CHECKDB (dbname, REPAIR_ALLOW_DATA_LOSS);

checkdb 中斷報錯

CHECKDB 在數據庫 'dbname' 中發現 0 個分配錯誤和 0 個一致性錯誤。

DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
消息 211,級別 23,狀態 16,第 1 行
可能發生了架構損壞。請運行 DBCC CHECKCATALOG。

 

除了這些信息,完全不知道哪些表有問題。又對這個庫的所有表都 checktable ,也無報錯。可以確認,當前的表結構及數據是沒問題的,斷定是當前數據庫的系統表出現了問題。

好吧,打開 Profiler 跟着(RPC:Startding、RPC:Completed、SP:Startding、SP:Completed、SP:StmtStartding、SP:StmtCompleted、SQL:…),甚至還跟蹤了鎖的請求及釋放(有點多余了)。然后刪除某報錯的存儲過程,跟蹤到以下SQL:

把以上出現的表查詢一遍:

  1.   select * from sys.all_objects
  2.   select * from sys.database_principals
  3.   select * from sys.sql_modules
  4.   select * from sys.system_sql_modules

發現是系統視圖 sys.sql_modules 報錯!該視圖返回函數、視圖、存儲過程的定義。查看該視圖的定義:

sp_helptext 'sys.sql_modules'
 
--定義
 
CREATE VIEW sys.sql_modules AS
 
SELECT object_id = o.id,
definition = object_definition(o.id),
uses_ansi_nulls = sysconv(bit, o.status & 0x40000), -- OBJMOD_ANSINULLS
uses_quoted_identifier = sysconv(bit, o.status & 0x80000), -- OBJMOD_QUOTEDIDENT
is_schema_bound = sysconv(bit, o.status & 0x20000), -- OBJMOD_SCHEMABOUND
uses_database_collation = sysconv(bit, o.status & 0x100000), -- OBJMOD_USESDBCOLL
is_recompiled = sysconv(bit, o.status & 0x400000), -- OBJMOD_NOCACHE
null_on_null_input = sysconv(bit, o.status & 0x200000), -- OBJMOD_NULLONNULL
execute_as_principal_id = x.indepid
FROM sys.sysschobjs o
LEFT JOIN sys.syssingleobjrefs x ON x.depid = o.id AND x.class = 22 AND x.depsubid = 0 -- SRC_OBJEXECASOWNER
WHERE o.pclass <> 100 -- x_eunc_Server
AND ((o.type = 'TR' AND has_access('TR', o.id, o.pid, o.nsclass) = 1)
OR (type IN ('P','V','FN','IF','TF','RF','IS') AND has_access('CO', o.id) = 1)
OR (type IN ('R','D') AND o.pid = 0))

 

可以看到2個系統視圖: sys.sysschobjs、sys.syssingleobjrefs

但是,這2個系統視圖是無法直接查詢的,難道到這里就終止了嗎?

NO!~不可能的!~

 

要查看這些系統視圖,我們需要以專用管理員連接(DAC) 訪問。

添加 “-m” 到啟動參數,然后重啟服務。

  

 

 

直接點擊一個查詢窗口,以DAC管理員訪問:admin:<instancename>

  

 

 

好了,進入損壞的數據庫,查詢系統視圖:

  1. select * from sys.sysschobjs
  2. select * from sys.syssingleobjrefs

其實,這些系統視圖,等價於我們常看到的那些系統視圖。

Sysobjects = sys.sysschobjs
Syscolumns = sys.syscolpars
Sysindexes = sys.sysidxstats

廢話不多說,再執行視圖sys.sql_modules 的定義中的一部分sql:

SELECT object_id = o.id,
 
definition = object_definition(o.id)
 
FROM sys.sysschobjs o
 
LEFT JOIN sys.syssingleobjrefs x ON x.depid = o.id AND x.class = 22 AND x.depsubid = 0

 

可以確認是 object_definition 獲取定義的函數出錯。

回頭看看那個報錯的存儲過程,查看其定義:

select object_definition(id),id from sys.sysschobjs where name='usp_mytest'

果然是報錯的就是它,錯誤就是最開始的信息。但是,不確定是否其他對象也可能出錯,所以執行以下SQL,把所有輸出都執行一遍。

select concat('selelct object_definition(',id,')') from sys.sysschobjs

既然確定了該出錯的信息,那么就只能把該行數據刪掉了!那要刪除哪些表呢?

以下這些表,可以都查看一遍,與對象id相關的,都可以查詢出來刪掉。

select id,name,type,concat('select * from sys.',name) from sys.sysschobjs WHERE NAME LIKE 'sys%' order by type,NAME 

以下幾張表是我刪除的:

select id from sys.sysschobjs where name='usp_mytest'
 
delete from sys.sysschobjs where id=xxxxxxxxxxx
 
delete from sys.syscolpars where id=xxxxxxxxxxx
 
delete from sys.syssoftobjrefs where depid=xxxxxxxxxxx

 

如果只刪除 sys.sysschobjs ,checkdb 的時候還是報錯,所以把其他相關表也刪除

 

Attribute (parent_object_id=xxxxxxxxxxx) of row (object_id=xxxxxxxxxxx) in sys.objects does not have a matching row (object_id=xxxxxxxxxxx) in sys.objects.

再checkdb,發現已經沒有錯誤了。上面提到的一些查詢也操作正常,SSMS存儲過程列表也可以打開了!

-- 可創建原來的存儲過程
-- Create procedure usp_mytest
 
ALTER DATABASE dbname SET EMERGENCY;
GO
ALTER DATABASE dbname SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO

DBCC CHECKDB (dbname) WITH TABLOC
GO
 
ALTER DATABASE dbname SET MULTI_USER;
GO

ALTER DATABASE dbname SET ONLINE;
GO

此時,可以把啟動參數“-m”去掉,重啟服務!

至此,完美解決。checkdb 無法修復的系統對象,通過手動修改解決了!

【參考文檔】

SQL Server元數據損壞(metadata corruption)修復

【3】中實操轉自:SQL Server 系統架構損壞手動修復https://blog.csdn.net/kk185800961/article/details/109633086

sql server系統頁錯誤(GAM、SGAM、PFS)

sql server依賴引用錯誤:SQL Server一致性錯誤修復案例總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM