0


数据库 SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确 解决方法

一、错误提示信息:

本文验证是数据库中的baiduAi_0258表无法通过select语句ID条件查询,

如执行 select * from baiduAi_0258 where ID ='0000403e-7903-413b-87ab-3c14d0295482' 提示以下错误信息。

消息 824,级别 24,状态 2,第 1 行
SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确(应为: 0x85ab4a86,但实际为: 0x85ab4a83)。在文件 'E:\BDAIData.mdf' 中、偏移量为 0x00000b32a16000 的位置对数据库 ID 5 中的页 (1:5870859) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。

完成时间: 2023-04-27T21:19:31.2286360+08:00

二、原因分析:

数据库系统表架构损坏,也可能是数据库中某个表数据文件已损坏,Sql Server并提示使用DBCC检测修复。

三、解决方法:

数据库中执行以下语句:

--1.设置数据库为单用户模式(会立即断开其他所有用户的连接)
ALTER DATABASE BDAIData
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO

--2.修复数据库(允许数据丢失)
DBCC CHECKDB ('BDAIData', REPAIR_ALLOW_DATA_LOSS)

--3.单用户模式关闭(多用户模式开启)
ALTER DATABASE BDAIData
SET MULTI_USER;
GO

通过DBCC CHECKDB('hbposv8','REPAIR_ALLOW_DATA_LOSS') 修复

如以上测试无法修复,说明系统表架构已经严重损坏。

需要通过底层16机制代码 纠正错误页 。可以快速修复损坏文件

数据库中执行以下语句:
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1
GO
RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASE BDAIData SET emergency
GO
ALTER DATABASE BDAIData SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
DBCC CHECKDB('BDAIData ','REPAIR_ALLOW_DATA_LOSS')
GO
ALTER DATABASE BDAIData SET ONLINE
GO
sp_configure 'allow updates', 0
GO
reconfigure with override
GO
ALTER DATABASE BDAIData SET MULTI_USER WITH ROLLBACK IMMEDIATE
GO

四、执行完成结果:

BDAIData 的 DBCC 结果。
Service Broker 消息 9675,状态 1: 已分析的消息类型: 14。
Service Broker 消息 9676,状态 1: 已分析的服务约定: 6。
Service Broker 消息 9667,状态 1: 已分析的服务: 3。
Service Broker 消息 9668,状态 1: 已分析的服务队列: 3。
Service Broker 消息 9669,状态 1: 已分析的会话端点: 0。
Service Broker 消息 9674,状态 1: 已分析的会话组: 0。
Service Broker 消息 9670,状态 1: 已分析的远程服务绑定: 0。
Service Broker 消息 9605,状态 1: 已分析的会话优先级: 0。
sys.sysrscols的 DBCC 结果。
对象 'sys.sysrscols' 的 205 页中有 19898 行。
sys.sysrowsets的 DBCC 结果。
对象 'sys.sysrowsets' 的 29 页中有 2456 行。
sys.sysclones的 DBCC 结果。
对象 'sys.sysclones' 的 0 页中有 0 行。
sys.sysallocunits的 DBCC 结果。
对象 'sys.sysallocunits' 的 32 页中有 2621 行。
sys.sysfiles1的 DBCC 结果。
对象 'sys.sysfiles1' 的 1 页中有 2 行。
sys.sysseobjvalues的 DBCC 结果。
对象 'sys.sysseobjvalues' 的 0 页中有 0 行。
sys.syspriorities的 DBCC 结果。
对象 'sys.syspriorities' 的 0 页中有 0 行。
sys.sysdbfrag的 DBCC 结果。
对象 'sys.sysdbfrag' 的 0 页中有 0 行。
sys.sysfgfrag的 DBCC 结果。
对象 'sys.sysfgfrag' 的 0 页中有 0 行。
sys.sysdbfiles的 DBCC 结果。
对象 'sys.sysdbfiles' 的 1 页中有 2 行。
sys.syspru的 DBCC 结果。
对象 'sys.syspru' 的 0 页中有 0 行。
sys.sysbrickfiles的 DBCC 结果。
对象 'sys.sysbrickfiles' 的 0 页中有 0 行。
sys.sysphfg的 DBCC 结果。
对象 'sys.sysphfg' 的 1 页中有 1 行。
sys.sysprufiles的 DBCC 结果。
对象 'sys.sysprufiles' 的 1 页中有 2 行。
sys.sysftinds的 DBCC 结果。
对象 'sys.sysftinds' 的 0 页中有 0 行。
sys.sysowners的 DBCC 结果。
对象 'sys.sysowners' 的 1 页中有 18 行。
sys.sysdbreg的 DBCC 结果。
对象 'sys.sysdbreg' 的 0 页中有 0 行。
sys.sysprivs的 DBCC 结果。
对象 'sys.sysprivs' 的 1 页中有 171 行。
sys.sysschobjs的 DBCC 结果。
对象 'sys.sysschobjs' 的 102 页中有 4772 行。
sys.syscsrowgroups的 DBCC 结果。
对象 'sys.syscsrowgroups' 的 0 页中有 0 行。
sys.sysextsources的 DBCC 结果。
对象 'sys.sysextsources' 的 0 页中有 0 行。
sys.sysexttables的 DBCC 结果。
对象 'sys.sysexttables' 的 0 页中有 0 行。
sys.sysextfileformats的 DBCC 结果。
对象 'sys.sysextfileformats' 的 0 页中有 0 行。
sys.sysmultiobjvalues的 DBCC 结果。
对象 'sys.sysmultiobjvalues' 的 0 页中有 0 行。
sys.syscolpars的 DBCC 结果。
对象 'sys.syscolpars' 的 307 页中有 16850 行。
sys.sysxlgns的 DBCC 结果。
对象 'sys.sysxlgns' 的 0 页中有 0 行。
sys.sysxsrvs的 DBCC 结果。
对象 'sys.sysxsrvs' 的 0 页中有 0 行。
sys.sysnsobjs的 DBCC 结果。
对象 'sys.sysnsobjs' 的 1 页中有 1 行。
sys.sysusermsgs的 DBCC 结果。
对象 'sys.sysusermsgs' 的 0 页中有 0 行。
sys.syscerts的 DBCC 结果。
对象 'sys.syscerts' 的 0 页中有 0 行。
sys.sysrmtlgns的 DBCC 结果。
对象 'sys.sysrmtlgns' 的 0 页中有 0 行。
sys.syslnklgns的 DBCC 结果。
对象 'sys.syslnklgns' 的 0 页中有 0 行。
sys.sysxprops的 DBCC 结果。
对象 'sys.sysxprops' 的 10 页中有 402 行。
sys.sysscalartypes的 DBCC 结果。
对象 'sys.sysscalartypes' 的 1 页中有 34 行。
sys.systypedsubobjs的 DBCC 结果。
对象 'sys.systypedsubobjs' 的 0 页中有 0 行。
sys.sysidxstats的 DBCC 结果。
对象 'sys.sysidxstats' 的 138 页中有 6865 行。
sys.sysiscols的 DBCC 结果。
对象 'sys.sysiscols' 的 47 页中有 6559 行。
sys.sysendpts的 DBCC 结果。
对象 'sys.sysendpts' 的 0 页中有 0 行。
sys.syswebmethods的 DBCC 结果。
对象 'sys.syswebmethods' 的 0 页中有 0 行。
sys.sysbinobjs的 DBCC 结果。
对象 'sys.sysbinobjs' 的 1 页中有 23 行。
sys.sysaudacts的 DBCC 结果。
对象 'sys.sysaudacts' 的 0 页中有 0 行。
sys.sysobjvalues的 DBCC 结果。
对象 'sys.sysobjvalues' 的 1778 页中有 7112 行。
sys.syscscolsegments的 DBCC 结果。
对象 'sys.syscscolsegments' 的 0 页中有 0 行。
sys.syscsdictionaries的 DBCC 结果。
对象 'sys.syscsdictionaries' 的 0 页中有 0 行。
sys.sysclsobjs的 DBCC 结果。
对象 'sys.sysclsobjs' 的 1 页中有 16 行。
sys.sysrowsetrefs的 DBCC 结果。
对象 'sys.sysrowsetrefs' 的 0 页中有 0 行。
sys.sysremsvcbinds的 DBCC 结果。
对象 'sys.sysremsvcbinds' 的 0 页中有 0 行。
sys.sysxmitqueue的 DBCC 结果。
对象 'sys.sysxmitqueue' 的 0 页中有 0 行。
sys.sysrts的 DBCC 结果。
对象 'sys.sysrts' 的 1 页中有 1 行。
sys.sysconvgroup的 DBCC 结果。
对象 'sys.sysconvgroup' 的 0 页中有 0 行。
sys.sysdesend的 DBCC 结果。
对象 'sys.sysdesend' 的 0 页中有 0 行。
sys.sysdercv的 DBCC 结果。
对象 'sys.sysdercv' 的 0 页中有 0 行。
sys.syssingleobjrefs的 DBCC 结果。
对象 'sys.syssingleobjrefs' 的 8 页中有 1017 行。
sys.sysmultiobjrefs的 DBCC 结果。
对象 'sys.sysmultiobjrefs' 的 5 页中有 496 行。
sys.sysguidrefs的 DBCC 结果。
对象 'sys.sysguidrefs' 的 0 页中有 0 行。
sys.sysfoqueues的 DBCC 结果。
对象 'sys.sysfoqueues' 的 0 页中有 0 行。
sys.syschildinsts的 DBCC 结果。
对象 'sys.syschildinsts' 的 0 页中有 0 行。
sys.syscompfragments的 DBCC 结果。
对象 'sys.syscompfragments' 的 0 页中有 0 行。
sys.sysftsemanticsdb的 DBCC 结果。
对象 'sys.sysftsemanticsdb' 的 0 页中有 0 行。
sys.sysftstops的 DBCC 结果。
对象 'sys.sysftstops' 的 0 页中有 0 行。
sys.sysftproperties的 DBCC 结果。
对象 'sys.sysftproperties' 的 0 页中有 0 行。
sys.sysxmitbody的 DBCC 结果。
对象 'sys.sysxmitbody' 的 0 页中有 0 行。
sys.sysfos的 DBCC 结果。
对象 'sys.sysfos' 的 0 页中有 0 行。
sys.sysqnames的 DBCC 结果。
对象 'sys.sysqnames' 的 1 页中有 98 行。
sys.sysxmlcomponent的 DBCC 结果。
对象 'sys.sysxmlcomponent' 的 1 页中有 100 行。
sys.sysxmlfacet的 DBCC 结果。
对象 'sys.sysxmlfacet' 的 1 页中有 112 行。
sys.sysxmlplacement的 DBCC 结果。
对象 'sys.sysxmlplacement' 的 1 页中有 19 行。
sys.sysobjkeycrypts的 DBCC 结果。
对象 'sys.sysobjkeycrypts' 的 0 页中有 0 行。
sys.sysasymkeys的 DBCC 结果。
对象 'sys.sysasymkeys' 的 0 页中有 0 行。
sys.syssqlguides的 DBCC 结果。
对象 'sys.syssqlguides' 的 0 页中有 0 行。
sys.sysbinsubobjs的 DBCC 结果。
对象 'sys.sysbinsubobjs' 的 1 页中有 3 行。
sys.syssoftobjrefs的 DBCC 结果。
对象 'sys.syssoftobjrefs' 的 1 页中有 77 行。
baiduAi_0258的 DBCC 结果。
对象 'baiduAi_0258' 的 11531 页中有 100008 行。
baidu_Company的 DBCC 结果。
对象 'baidu_Company' 的 0 页中有 0 行。
CHECKDB 在数据库 'BDAIData' 中发现 0 个分配错误和 2 个一致性错误。
CHECKDB 在数据库 'BDAIData' 中修复了 0 个分配错误和 2 个一致性错误。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

完成时间: 2023-04-27T21:25:05.5827249+08:00

五、重要说明

请务必做好数据库备份,备份了数据库,在任何操作下都能保证数据绝对安全。

标签: 数据库 sqlserver

本文转载自: https://blog.csdn.net/lizaijinsheng/article/details/130415590
版权归原作者 TryRestart 所有, 如有侵权,请联系我们删除。

“数据库 SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确 解决方法”的评论:

还没有评论