【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一致性错误修复案例总结

posted @ 2020-01-02 11:13  郭大侠1  阅读(6280)  评论(0编辑  收藏  举报