none
SQL Server RRS feed

  • 问题

  • 消息 824,级别 24,状态 2,第 2 行
    SQL Server 检测到基于一致性的逻辑 I/O 错误 加密密钥无效。在文件 'E:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\LWSHZYL.mdf' 中、偏移量为 0x000002c0058000 的位置对数据库 ID 20 中的页 (1:1441836) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。
    2013年9月16日 3:52

答案

  • 上面的消息已经说明得很清楚了,如果LZ有数据库备份最好还原数据库备份

    如果没有备份就使用DBCC CHECKDB命令,使用DBCC CHECKDB命令有可能丢失数据

    
    ALTER DATABASE [GPOSDB] SET EMERGENCY
    GO
    DBCC CHECKDB ( 'GPOSDB') WITH NO_INFOMSGS ,ALL_ERRORMSGS
    
    
    ALTER DATABASE [GPOSDB] SET SINGLE_USER  WITH ROLLBACK IMMEDIATE
    
    EXEC sys.SP_CONFIGURE 'ALLOW UPDATES' , 1
    RECONFIGURE WITH OVERRIDE
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    
    DBCC checkdb( 'GPOSDB',REPAIR_ALLOW_DATA_LOSS )
    GO
    
    ALTER DATABASE [GPOSDB] SET MULTI_USER
    GO
    
    
    ALTER DATABASE [GPOSDB] SET ONLINE
    GO

    2013年9月16日 7:58
  • 根据提示操作

    这个错误通常是IO故障引起的, 参考

    http://technet.microsoft.com/zh-cn/library/aa337274.aspx

    2013年9月16日 11:04

全部回复

  • 上面的消息已经说明得很清楚了,如果LZ有数据库备份最好还原数据库备份

    如果没有备份就使用DBCC CHECKDB命令,使用DBCC CHECKDB命令有可能丢失数据

    
    ALTER DATABASE [GPOSDB] SET EMERGENCY
    GO
    DBCC CHECKDB ( 'GPOSDB') WITH NO_INFOMSGS ,ALL_ERRORMSGS
    
    
    ALTER DATABASE [GPOSDB] SET SINGLE_USER  WITH ROLLBACK IMMEDIATE
    
    EXEC sys.SP_CONFIGURE 'ALLOW UPDATES' , 1
    RECONFIGURE WITH OVERRIDE
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    
    DBCC checkdb( 'GPOSDB',REPAIR_ALLOW_DATA_LOSS )
    GO
    
    ALTER DATABASE [GPOSDB] SET MULTI_USER
    GO
    
    
    ALTER DATABASE [GPOSDB] SET ONLINE
    GO

    2013年9月16日 7:58
  • 还有,LZ可以看一下SQL ERRORLOG,看一下是什么原因导致对数据库 ID 20 中的页 (1:1441836) 执行 读取 期间,发生了该错误

    路径:C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG

    2013年9月16日 8:00
  • 根据提示操作

    这个错误通常是IO故障引起的, 参考

    http://technet.microsoft.com/zh-cn/library/aa337274.aspx

    2013年9月16日 11:04
  • LZ的错误可以参考

    消息 824,级别 24,状态 2,第 2 行

    一般数据库损坏的类型有以下几个  已放博客园

    --823错误:SQL向操作系统申请某个页面读写时候遇到Windows读取或写入请求失败,通常是物理文件损坏导致此错误,也可能是设备驱动程序导致,这个错误要不硬件出问题,要不数据文件发生严重损坏,错误意味着数据页里的有效数据丢失,dbcc checkdb很难修复
    --
    --824错误:SQL检测到页中存在逻辑错误,虽然dbcc checkdb能够修复,但是这个错误基本意味着部分数据丢失
    --
    --605错误:非常有名的数据库损坏错误,指定数据库中的页或分配已损坏。如果这个错误是暂时的,dbcc checkdb可以修复,如果这个错误不是暂时的,那么dbcc checkdb也很难修复

    --8946错误:PFS页面头有损坏
    --
    --8966错误:系统表上的聚集索引页面上有损坏
    --
    --2570错误:某个字段的值不符合字段数据类型定义
    --
    --3854错误:元数据有损坏

    --有些错误可以不丢失数据就能修复,有些要丢失数据才能修复物理层面的错误,有些即使丢失数据也没办法修复

    2013年9月16日 11:10