错误 823
严重级别 24
消息正文
在文件 ''%4!'' 的偏移量 %3! 处的 %2! 过程中,检测到 I/O 错误 %1!。解释
Microsoft® SQL Server™ 在对某设备进行读或写请求时遇到 I/O 错误。该错误通常表明磁盘问题。但是,错误日志中在错误 823 之前记录的其它核心消息应指出涉及了哪个设备。对策
检查该设备的可访问性和状态。如果可能,执行硬件诊断并纠正问题。从最新的数据库备份还原损坏的文件。从数据库备份中还原应始终是修复已损坏数据库的首选方法。如果没有备份或者检测到的错误是孤立的,则 DBCC CHECKDB 的修复功能可能很有用。然而,比起从备份中还原损坏的文件,可能使用 DBCC CHECKDB 消耗的时间更多,且可能无法恢复全部数据。

解决方案 »

  1.   

    这些都是微软官方的解释,看不懂啊~郁闷~
    能否再说的详细点啊~我的磁盘已经经过扫描,没有发现什么问题~
    再者,我发现Windows磁盘碎片检测程序检测到数据库所在的分区有很多的碎片,而且无法进行整理,是否是和碎片多了有关~
      

  2.   

    试一试吧:  1.新建一个同名的数据库  2.再停掉sql server(注意不要分离数据库)  3.用原数据库的数据文件覆盖掉这个新建的数据库  4.再重启sql server  5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)  6.完成后一般就可以访问数据库中的数据了。   这时,数据库本身一般还要问题(不要停止服务器,否则以上步骤要重新做)   解决办法是:创建一个新的数据库,并DTS导入导出向导将数据导进去就行了.USE master
    GO
    SP_CONFIGURE 'allow updates',1 RECONFIGURE WITH OVERRIDE
    GO
    UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'
    GO
    SP_DBOPTION '置疑的数据库名', 'single user', 'true'
    GO
    DBCC CHECKDB('置疑的数据库名') 
    GO
    UPDATE SYSDATABASES SET STATUS =28 WHERE NAME='置疑的数据库名'
    GO
    SP_CONFIGURE 'allow updates', 0 RECONFIGURE WITH OVERRIDE
    GO
    SP_DBOPTION '置疑的数据库名', 'single user', 'false'
    GO