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

解决方案 »

  1.   

    参考:
    用语句修复:检测到基于一致性的逻辑 I/O 错误
    use master  
    declare @databasename varchar(255)  
    set @databasename='需要修复的数据库实体的名称'  
    exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态  
    dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)  
    dbcc checkdb(@databasename,REPAIR_REBUILD)  
    exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态
      

  2.   

    用 DBCC CHECKDB 检查数据库,它会给出更详细的说明.
      

  3.   

    DBCC CHECKDB('databasename')
    先试试
    如果不行
    DBCC CHECKDB('databasename','REPAIR_ALLOW_DATA_LOSS')
    注意有风险
      

  4.   

    DBCC CHECKDB('databasename')用这个,显示如下:
    消息 8946,级别 16,状态 12,第 1 行
    表错误: 分配页 (1:380136) 具有无效的 PFS_PAGE 页头值。类型为 0。请检查该页的类型、分配单元 ID 和页 ID。请问,该怎么操作!
    谢谢
      

  5.   

    先备份数据吧,你的数据库问题比较严重了,用REPAIR_ALLOW_DATA_LOSS
      

  6.   

    可以从之前做过的全备份文件中单独恢复数据页,语法如下供参考.restore database [Database Name] PAGE='1:383429'
    from disk='[最近的全备份文件]' -- 其中 1:383429 来自错误提示.
      

  7.   

    dbcc checktable ('表名',REPAIR_ALLOW_DATA_LOSS)
    也不一定要数据库级别,不过为了保险还是整个数据库扫描一遍
    另外恢复数据页2000不适应