症状:

使用时 DBCC CHECKDBREPAIR_ALLOW_DATA_LOSS 修复损坏的.MDF数据库的参数,如下所示:

DBCC CHECKDB(xxxx,'REPAIR_ALLOW_DATA_LOSS')

您看到以下错误消息:

修复:已成功为数据库“ Error1”中的对象“ sysobjvalues”重建了聚集索引。
修复:已成功为数据库“ Error1”中的对象“ syscolpars”重建了非聚集索引。
DBCC结果为“错误1”。
“ sys.sysrscols”的DBCC结果。
1092个页面中有对象“ sys.sysrscols”的14行。
“ sys.sysrowsets”的DBCC结果。
148页中的对象“ sys.sysrowsets”共有3行。
“ sys.sysclones”的DBCC结果。
0页上的0行包含对象“ sys.sysclones”。
“ sys.sysallocunits”的DBCC结果。
172页中的对象“ sys.sysallocunits”共有2行。
'sys.sysfiles1'的DBCC结果。
2页的对象“ sys.sysfiles1”中有1行。
“ sys.sysseobjvalues”的DBCC结果。
0页上的0行包含对象“ sys.sysseobjvalues”。
“ sys.syspriorities”的DBCC结果。
0页上的0行包含对象“ sys.syspriorities”。
'sys.sys的DBCC结果dbf抹布'。
0页上的0行包含对象“ sys.sys”dbf抹布”。
'sys.sysfgfrag'的DBCC结果。
0页上的“ sys.sysfgfrag”对象有0行。
'sys.sys的DBCC结果dbfiles'。
2页上的1行包含对象“ sys.sys”dbfiles”。
“ sys.syspru”的DBCC结果。
0页上的对象“ sys.syspru”中有0行。
“ sys.sysbrickfiles”的DBCC结果。
0页上的0行包含对象“ sys.sysbrickfiles”。
“ sys.sysphfg”的DBCC结果。
1页中的对象“ sys.sysphfg”中有1行。
“ sys.sysprufiles”的DBCC结果。
2页的对象“ sys.sysprufiles”中有1行。
“ sys.sysftinds”的DBCC结果。
0页上的0行包含对象“ sys.sysftinds”。
“ sys.sysowners”的DBCC结果。
14页的对象“ sys.sysowners”中有1行。
“ sys.sysdbreg”的DBCC结果。
0页上的对象“ sys.sysdbreg”中有0行。
“ sys.sysprivs”的DBCC结果。
140页中的对象“ sys.sysprivs”共有1行。
“ sys.syscolpars”的DBCC结果。
修复:已从对象ID 1,索引ID 63,分区ID 41,分配单元ID 1(行内数据类型)释放页面(281474979397632:281474979397632)。
修复:已成功为数据库“ Error1”中的对象“ sys.syscolpars,nc”重建了非聚集索引。
消息8945,级别16,状态1,行8
表格错误:将重建对象ID 41,索引ID 1。
无法修复此错误。
消息8978,级别16,状态1,行8
表格错误:对象ID 41,索引ID 1,分区ID 281474979397632,分配单元ID 281474979397632(类型为行内数据)。 页面(1:61)缺少上一页(1:63)的引用。 可能的连锁问题。
该错误已修复。
消息8928,级别16,状态1,行8
对象ID 41,索引ID 1,分区ID 281474979397632,分配单元ID 281474979397632(行内数据类型):页面(1:63)无法处理。 有关详细信息,请参见其他错误。
该错误已修复。
消息8939,级别16,状态98,行8
表格错误:对象ID 41,索引ID 1,分区ID 281474979397632,分配单元ID 281474979397632(行内数据类型),页面(1:63)。 测试(IS_OFF(BUF_IOERR,pBUF-> bstat))失败。 值是2057和-4。
该错误已修复。
消息8976,级别16,状态1,行8
表格错误:对象ID 41,索引ID 1,分区ID 281474979397632,分配单元ID 281474979397632(类型为行内数据)。 尽管页面(1:63)引用了它的父页面(1:111)和上一个页面(1:168),但未在扫描中看到它。 检查以前的任何错误。
该错误已修复。
消息8945,级别16,状态1,行8
表格错误:将重建对象ID 41,索引ID 2。
该错误已修复。
881页中的对象“ sys.syscolpars”有15行。
CHECKDB在表sys.syscolpars(对象ID 0)中发现4个分配错误和41个一致性错误。
CHECKDB在表sys.syscolpars(对象ID 0)中修复了4个分配错误和41个一致性错误。
'sys.sysxlgns'的DBCC结果。
0页上的“ sys.sysxlgns”对象有0行。
“ sys.sysxsrvs”的DBCC结果。
0页上的“ sys.sysxsrvs”对象有0行。
“ sys.sysnsobjs”的DBCC结果。
1页中的对象“ sys.sysnsobjs”有1行。
“ sys.sysusermsgs”的DBCC结果。
0页中的“ sys.sysusermsgs”对象有0行。
“ sys.syscerts”的DBCC结果。
0页上的“ sys.syscerts”对象有0行。
'sys.sysrmtlgns'的DBCC结果。
0页中的“ sys.sysrmtlgns”对象有0行。
'sys.syslnklgns'的DBCC结果。
0页中的对象“ sys.syslnklgns”有0行。
“ sys.sysxprops”的DBCC结果。
0页上的“ sys.sysxprops”对象有0行。
“ sys.sysscalartypes”的DBCC结果。
34页中的对象“ sys.sysscalartypes”共有1行。
“ sys.systypedsubobjs”的DBCC结果。
0页上的0行包含对象“ sys.systypedsubobjs”。
“ sys.sysidxstats”的DBCC结果。
207页中的对象“ sys.sysidxstats”共有5行。
“ sys.sysiscols”的DBCC结果。
399页中的对象“ sys.sysiscols”共有2行。
“ sys.sysendpts”的DBCC结果。
0页中的“ sys.sysendpts”对象有0行。
“ sys.syswebmethods”的DBCC结果。
0页上的0行包含对象“ sys.syswebmethods”。
“ sys.sysbinobjs”的DBCC结果。
23页中的对象“ sys.sysbinobjs”共有1行。
“ sys.sysaudacts”的DBCC结果。
0页上的0行包含对象“ sys.sysaudacts”。
“ sys.sysobjvalues”的DBCC结果。
修复:已成功为数据库“ Error1”中的对象“ sys.sysobjvalues”重建了聚集索引。
修复:已从对象ID 1,索引ID 24,分区ID 60,分配单元ID 1(行内数据类型)释放页面(281474980642816:281474980642816)。
修复:已删除页面(742981632:60),插槽1上的ID 281474980642816,对象ID 71776119065149440,索引ID 1,分区ID 369,分配单元ID 0(LOB数据类型)的行外数据列。
修复:已删除页面(742981632:60),插槽1上的ID 281474980642816,对象ID 71776119065149440,索引ID 1,分区ID 370,分配单元ID 0(LOB数据类型)的行外数据列。
修复:已删除页面(742981632:60),插槽1上的ID 281474980642816,对象ID 71776119065149440,索引ID 1,分区ID 371,分配单元ID 0(LOB数据类型)的行外数据列。
消息8945,级别16,状态1,行8
表格错误:将重建对象ID 60,索引ID 1。
该错误已修复。
消息8928,级别16,状态1,行8
对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 281474980642816(行内数据类型):页面(1:24)无法处理。 有关详细信息,请参见其他错误。
该错误已修复。
消息8939,级别16,状态98,行8
表格错误:对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 281474980642816(行内数据类型),页面(1:24)。 测试(IS_OFF(BUF_IOERR,pBUF-> bstat))失败。 值是2057和-4。
该错误已修复。
消息8939,级别16,状态98,行8
表格错误:对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 281474980642816(行内数据类型),页面(1:24)。 测试(IS_OFF(BUF_IOERR,pBUF-> bstat))失败。 值是2057和-4。
该错误已修复。
消息8976,级别16,状态1,行8
表格错误:对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 281474980642816(类型为行内数据)。 尽管页面(1:24)引用了它的父页面(1:43)和上一个页面(1:213),但未在扫描中看到它。 检查以前的任何错误。
该错误已修复。
消息8978,级别16,状态1,行8
表格错误:对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 281474980642816(类型为行内数据)。 页面(1:210)缺少上一页(1:24)的引用。 可能的连锁问题。
该错误已修复。
消息8964,级别16,状态1,行8
表格错误:对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 71776119065149440(类型LOB数据)。 未引用页面(1:369)的插槽0处的行外数据节点,文本ID 742981632。
该错误已修复。
消息8964,级别16,状态1,行8
表格错误:对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 71776119065149440(类型LOB数据)。 未引用页面(1:370)的插槽0处的行外数据节点,文本ID 742981632。
该错误已修复。
消息8964,级别16,状态1,行8
表格错误:对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 71776119065149440(类型LOB数据)。 未引用页面(1:371)的插槽0处的行外数据节点,文本ID 742981632。
该错误已修复。
在203页中,对象“ sys.sysobjvalues”有20行。
CHECKDB在表sys.sysobjvalues(对象ID 0)中发现8个分配错误和60个一致性错误。
CHECKDB在表sys.sysobjvalues(对象ID 0)中修复了8个分配错误和60个一致性错误。
“ sys.syscscolsegments”的DBCC结果。
0页上的“ sys.syscscolsegments”对象有0行。
“ sys.syscsdictionaries”的DBCC结果。
0页中的“ sys.syscsdictionaries”对象有0行。
“ sys.sysclsobjs”的DBCC结果。
16页的对象“ sys.sysclsobjs”中有1行。
“ sys.sysrowsetrefs”的DBCC结果。
0页上的0行包含对象“ sys.sysrowsetrefs”。
'sys.sysremsvcbinds'的DBCC结果。
0页上的0行包含对象“ sys.sysremsvcbinds”。
“ sys.sysxmitqueue”的DBCC结果。
0页中的“ sys.sysxmitqueue”对象有0行。
“ sys.sysrts”的DBCC结果。
1页中的对象“ sys.sysrts”中有1行。
“ sys.sysconvgroup”的DBCC结果。
0页上的“ sys.sysconvgroup”对象有0行。
“ sys.sysdesend”的DBCC结果。
0页上的对象“ sys.sysdesend”中有0行。
'sys.sysdercv'的DBCC结果。
0页上的“ sys.sysdercv”对象有0行。
“ sys.syssingleobjrefs”的DBCC结果。
171页中的对象“ sys.syssingleobjrefs”共有1行。
'sys.sysmultiobjrefs'的DBCC结果。
107页中的对象“ sys.sysmultiobjrefs”共有1行。
“ sys.sysguidrefs”的DBCC结果。
0页上的0行包含对象“ sys.sysguidrefs”。
“ sys.sysfoqueues”的DBCC结果。
0页上的0行包含对象“ sys.sysfoqueues”。
“ sys.syschildinsts”的DBCC结果。
0页上的对象“ sys.syschildinsts”中有0行。
“ sys.syscompfragments”的DBCC结果。
0页上的0行包含对象“ sys.syscompfragments”。
“ sys.sysftsemanticsdb”的DBCC结果。
0页上的0行包含对象“ sys.sysftsemanticsdb”。
“ sys.sysftstops”的DBCC结果。
0页上的0行包含对象“ sys.sysftstops”。
“ sys.sysftproperties”的DBCC结果。
0页上的对象“ sys.sysftproperties”中有0行。
“ sys.sysxmitbody”的DBCC结果。
0页上的0行包含对象“ sys.sysxmitbody”。
“ sys.sysfos”的DBCC结果。
0页上的“ sys.sysfos”对象有0行。
“ sys.sysqnames”的DBCC结果。
98页的对象“ sys.sysqnames”中有1行。
“ sys.sysxmlcomponent”的DBCC结果。
100页的“ sys.sysxmlcomponent”对象中有1行。
“ sys.sysxmlfacet”的DBCC结果。
112页中的对象“ sys.sysxmlfacet”共有1行。
“ sys.sysxmlplacement”的DBCC结果。
19页中的“ sys.sysxmlplacement”对象有1行。
“ sys.sysobjkeycrypts”的DBCC结果。
0页上的0行包含对象“ sys.sysobjkeycrypts”。
“ sys.sysasymkeys”的DBCC结果。
0页上的0行包含对象“ sys.sysasymkeys”。
“ sys.syssqlguides”的DBCC结果。
0页上的对象“ sys.syssqlguides”有0行。
“ sys.sysbinsubobjs”的DBCC结果。
3页中的对象“ sys.sysbinsubobjs”共有1行。
“ sys.syssoftobjrefs”的DBCC结果。
0页上的0行包含对象“ sys.syssoftobjrefs”。
“ sys.plan_persist_plan”的DBCC结果。
0页中的“ sys.plan_persist_plan”对象有0行。
“ sys.plan_persist_runtime_stats”的DBCC结果。
0页中的对象“ sys.plan_persist_runtime_stats”有0行。
“ sys.plan_persist_runtime_stats_interval”的DBCC结果。
0页中的对象“ sys.plan_persist_runtime_stats_interval”中有0行。
“ sys.plan_persist_context_settings”的DBCC结果。
0页中的对象“ sys.plan_persist_context_settings”有0行。
“ sys.sqlagent_jobs”的DBCC结果。
0页中的对象“ sys.sqlagent_jobs”有0行。
“ sys.sqlagent_jobsteps”的DBCC结果。
0页中的对象“ sys.sqlagent_jobsteps”有0行。
“ sys.sqlagent_job_history”的DBCC结果。
0页上的对象“ sys.sqlagent_job_history”中有0行。
'sys.queue_messages_2009058193'的DBCC结果。
0页中的对象“ sys.queue_messages_0”中有2009058193行。
'sys.queue_messages_2041058307'的DBCC结果。
0页中的对象“ sys.queue_messages_0”中有2041058307行。
'sys.filestream_tombstone_2073058421'的DBCC结果。
0页中的对象“ sys.filestream_tombstone_0”中有2073058421行。
“ sys.syscommittab”的DBCC结果。
0页上的“ sys.syscommittab”对象有0行。
'sys.filetable_updates_2105058535'的DBCC结果。
0页中的对象“ sys.filetable_updates_0”中有2105058535行。
“ sys.plan_persist_query_text”的DBCC结果。
0页中的对象“ sys.plan_persist_query_text”有0行。
“ sys.plan_persist_query”的DBCC结果。
0页中的对象“ sys.plan_persist_query”中有0行。
CHECKDB在数据库'Error0'中发现12个分配错误和1个一致性错误。
CHECKDB修复了数据库'Error0'中的12个分配错误和1个一致性错误。
消息824,级别24,状态2,行8
SQL Server 检测到基于逻辑一致性的I / O错误:错误的校验和(预期:0xb7bd14b3;实际:0xb7df14b2)。 它发生在读取文件'C:Program FilesMicrosoft中偏移量1x24的数据库ID 39中的页面(0:00000000030000)期间 SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf”。 中的其他消息 SQL Server 错误日志或系统事件日志可能会提供更多详细信息。 这是严重的错误情况,威胁数据库的完整性,必须立即更正。 完成完整的数据库一致性检查(DBCC CHECKDB)。 此错误可能是由许多因素引起的; 有关更多信息,请参见 SQL Server 在线书籍。
消息824,级别24,状态2,行8
SQL Server 检测到基于逻辑一致性的I / O错误:错误的校验和(预期:0xb7bd14b3;实际:0xb7df14b2)。 它发生在读取文件'C:Program FilesMicrosoft中偏移量1x24的数据库ID 39中的页面(0:00000000030000)期间 SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf”。 中的其他消息 SQL Server 错误日志或系统事件日志可能会提供更多详细信息。 这是严重的错误情况,威胁数据库的完整性,必须立即更正。 完成完整的数据库一致性检查(DBCC CHECKDB)。 此错误可能是由许多因素引起的; 有关更多信息,请参见 SQL Server 在线书籍。
消息824,级别24,状态2,行8
SQL Server 检测到基于逻辑一致性的I / O错误:错误的校验和(预期:0xb7bd14b3;实际:0xb7df14b2)。 它发生在读取文件'C:Program FilesMicrosoft中偏移量1x24的数据库ID 39中的页面(0:00000000030000)期间 SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf”。 中的其他消息 SQL Server 错误日志或系统事件日志可能会提供更多详细信息。 这是严重的错误情况,威胁数据库的完整性,必须立即更正。 完成完整的数据库一致性检查(DBCC CHECKDB)。 此错误可能是由许多因素引起的; 有关更多信息,请参见 SQL Server 在线书籍。
消息824,级别24,状态2,行8
SQL Server 检测到基于逻辑一致性的I / O错误:错误的校验和(预期:0xc8e2ed96;实际:0xb8a2f3df)。 它是在读取文件'C:Program FilesMicrosoft中偏移量1x63e39的数据库ID 0中的页面(0000000007:000)期间发生的 SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf”。 中的其他消息 SQL Server 错误日志或系统事件日志可能会提供更多详细信息。 这是严重的错误情况,威胁数据库的完整性,必须立即更正。 完成完整的数据库一致性检查(DBCC CHECKDB)。 此错误可能是由许多因素引起的; 有关更多信息,请参见 SQL Server 在线书籍。
消息824,级别24,状态2,行8
SQL Server 检测到基于逻辑一致性的I / O错误:错误的校验和(预期:0xc8e2ed96;实际:0xb8a2f3df)。 它是在读取文件'C:Program FilesMicrosoft中偏移量1x63e39的数据库ID 0中的页面(0000000007:000)期间发生的 SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf”。 中的其他消息 SQL Server 错误日志或系统事件日志可能会提供更多详细信息。 这是严重的错误情况,威胁数据库的完整性,必须立即更正。 完成完整的数据库一致性检查(DBCC CHECKDB)。 此错误可能是由许多因素引起的; 有关更多信息,请参见 SQL Server 在线书籍。
消息824,级别24,状态2,行8
SQL Server 检测到基于逻辑一致性的I / O错误:错误的校验和(预期:0xc8e2ed96;实际:0xb8a2f3df)。 它是在读取文件'C:Program FilesMicrosoft中偏移量1x63e39的数据库ID 0中的页面(0000000007:000)期间发生的 SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf”。 中的其他消息 SQL Server 错误日志或系统事件日志可能会提供更多详细信息。 这是严重的错误情况,威胁数据库的完整性,必须立即更正。 完成完整的数据库一致性检查(DBCC CHECKDB)。 此错误可能是由许多因素引起的; 有关更多信息,请参见 SQL Server 在线书籍。
消息824,级别24,状态2,行8
SQL Server 检测到基于逻辑一致性的I / O错误:错误的校验和(预期:0xc8e2ed96;实际:0xb8a2f3df)。 它是在读取文件'C:Program FilesMicrosoft中偏移量1x63e39的数据库ID 0中的页面(0000000007:000)期间发生的 SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf”。 中的其他消息 SQL Server 错误日志或系统事件日志可能会提供更多详细信息。 这是严重的错误情况,威胁数据库的完整性,必须立即更正。 完成完整的数据库一致性检查(DBCC CHECKDB)。 此错误可能是由许多因素引起的; 有关更多信息,请参见 SQL Server 在线书籍。

其中“ Error1”是要修复的损坏的MDF数据库的名称。

讯息8945 指示表错误,这是一致性错误。

错误消息的屏幕截图:

精确说明:

在一个 SQL Server MDF数据库,有很多 系统表 用于存储数据库的结构和元数据。

当CHECKDB发现其中一个系统表中存在不一致时,它将报告错误消息 讯息8945、8978、8928、8939等 并尝试修复错误。 如果无法解决该错误,则恢复将失败,并将导致更多错误,例如 讯息824.

您可以使用我们的产品 DataNumen SQL Recovery 从损坏的MDF文件中恢复数据并解决此错误。

样本文件:

样本损坏的MDF文件将导致 讯息8945 错误:

SQL Server 版本 MDF文件损坏 MDF文件由固定 DataNumen SQL Recovery
SQL Server 2014 Error5.mdf 错误5_fixed.mdf