今天一个数据库损坏了,不管对 该表 查询、修改、添加 都会出错, 错误信息如下:

I/O error (bad page ID) detected during read at offset 0x0000000171a000 in file “路径\文件”
    连接中断

导致错误的可能性有:
     1:服务器在正常运行的情况下突然断电,导致数据库文件损坏。
     2:对某设备进行读或写请求时遇到 I/O 错误。该错误通常表明磁盘问题。
 但对于以上问题都是无法避免的,庆幸的时,网上找到了解决方法(如下)

当出现这个问题的时候,可能有2种情况:
    1 :附加数据库时,提示 错误:823 
     2:能成功附加数据库,但查询、修改 某个指定表时,出现  I/O error (bad page ID) detected during 错误。
 
解决方法:
     第一个 附加数据库问题,可以参考:http://blog.csdn.net/shazhuyubaichi/article/details/6696031

第二个问题:

  1. sp_dboption '数据库名','single user','true'
  2. Go
  3. DBCC CHECKDB('数据库名', REPAIR_ALLOW_DATA_LOSS)
  4. Go
  5. sp_dboption '数据库名', 'single user','false'
  6. Go

我比较庆幸,通过以上语句就可以修复了。
以下是网上的一段摘要,我没有测试,先记录下来,以后或许有用。

    1. 方案1:调用DBCC   CHECKDB(‘db_name’,repair_rebuild)修复
    2. 方案2:若方案1失败,采用下面的方法试一试:
    3. 首先,在企业管理器中新建一数据库(如数据库名为test),建好数据库后,停止SQL Server Service Manager,
    4. 并将客户数据库的MDF文件更名为test_data.mdf(即新建数据库的主文件名),
    5. 然后用更名后的文件覆盖新建数据库同名文件,
    6. 接着,启动企业管理器。对Master数据库将系统表设置为可更改状态
    7. Use   Master
    8. Go
    9. sp_configure 'allow updates ', 1
    10. reconfigure with override
    11. Go
    12. 将数据库设为紧急状态:
    13. update sysdatabases set status = 32768 where name = 'database'
    14. 停止并重新启动SQL Server Service Manager,并重建Log文件:
    15. DBCC TRACEON   (3604)
    16. DBCC REBUILD_LOG( 'test', 'test_log_ldf ')
    17. 将数据库设置为单用户模式,然后进行检测:
    18. sp_dboption  'test', 'single user ', 'true'
    19. DBCC   CHECKDB( 'test')
    20. Go
    21. 此数据库执行CHECKDB的过程中发现一些表的索引被破坏,于是针对具体的表进行重建索引的操作:
    22. DBCC   DBREINDEX(表名)
    23. 方案3:若无法修复,则只能重备份中进行恢复.

SQL 错误 823 I/O error (bad page ID) detected during read【修复方法】的更多相关文章

  1. SQL Server 823,824 错误

    第一: 823错误只代表.SQL server 要向操作系统申请一个页面读写的时候遇到Windos读取或写入失败.823错误是读写请求时发生的 和读写的内容没有关系.823与SQL server 本身 ...

  2. Chrome A标签的迁移错误:【Error loading page】

    在IE中经常使用A标签用来迁移,正确的写法是 <a href="001.html"></a>即可,不过在chrome上面可能会引发错误无法迁移. 比如用下面 ...

  3. Dedecms自定义sql 出现错误Safe Alert: Request Error step 2!

    Dedecms自定义执行sql: SELECT body FROM dede_addonarticle WHERE aid = (select max(aid) fromdede_addonartic ...

  4. 使用 JQueryMobile 点击超链接提示“error loading page” 错误

    使用jquery mobile创建dialog时出现加载错误,“Error Loading Page”. 原因是:jquery mobile页面默认采用ajax方式进行交互,而ajax方式下是不支持f ...

  5. RESTORE detected an error on page (0:0) in database

    在测试服务器还原生产服务器的一个数据库时遇到了下面错误: System.Data.SqlClient.SqlError: RESTORE detected an error on page (0:0) ...

  6. MSSQL 2000 错误823恢复

    一.故障描述 MSSQL Server 2000 附加数据库错误823,附加数据库失败.数据库没有备份,不能通过备份恢复数据库,急需恢复数据库中的数据. 二.故障分析SQL Server数据库 823 ...

  7. MSSQL 2000 错误823恢复案例

    一.故障描述 MSSQL Server 2000 附加数据库错误823,附加数据库失败.数据库没有备份,不能通过备份恢复数据库,急需恢复数据库中的数据. 二.故障分析SQL Server数据库 823 ...

  8. 数据恢复案例分享:MSSQL 2000 错误823

    一.故障描述 MSSQL Server 2000 附加数据库错误823,附加数据库失败.数据库没有备份,不能通过备份恢复数据库,急需恢复数据库中的数据. 二.故障分析SQL Server数据库 823 ...

  9. syntax error, error in :'e id=1?', expect QUES, actual QUES pos 66, line 1, column 66, token QUES错误

    在查询数据库的时候报了下面的异常: syntax error, error in :'e id=1?', expect QUES, actual QUES pos 66, line 1, column ...

随机推荐

  1. C语言存储类型

    看c专家编程,有说存储类型一直不太清楚.看到一篇文章讲解c的存储类型,讲解了c语言中的各种变量的存储类型,而且是从进程.内存的角度讲解的,以前从没有这样理解过,觉得挺有用的,在这里转载过来. 首先要来 ...

  2. Maximum Depth of Binary Tree leetcode java

    题目: Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the ...

  3. Android权限管理PermissionsDispatcher2.3.2使用+原生6.0权限使用

    PermissionsDispatcher2.3.2使用 Android6.0权限官网https://developer.android.com/about/versions/marshmallow/ ...

  4. Jquery 获取第一个子元素

    <ul>  <li>John</li>  <li>Karl</li>  <li>Brandon</li></u ...

  5. 使用FlexiGrid实现Extjs表格的效果-网络传输小,更方便!

      近一段时间Extjs真的是风光无限好,只要是个做CRM/HRM之类的企业现在都在琢磨怎么在项目中用它,不过兄弟我可是不敢,原因很简单:太大/太笨/源码不好调试.但是对于Extjs漂亮的表格与功能的 ...

  6. GO语言基础map与函数

    1. map 1. 类似其它语言中的哈希表活着字典,以 key-value 形式存储数据 2. key 必须是支持 == 或 != 比较运算的类型,不可以是函数.map 或 slice 3. map ...

  7. 基于Teigha.Net实现CAD到SHP的转换方案

    CAD在测绘领域运用广泛,所以,现在有很多成果都是CAD格式,但其自身存在很多局限性,需将其转为支持更加广泛,存储更加完善的 SHP文件.ArcGIS中直接提供相关转换工具,但不能转换Xdata,Ar ...

  8. 限制RICHTEXTBOX的输入的范围

        附件: http://files.cnblogs.com/xe2011/WindowsFormsApplication_LimitRichTextBoxInput.rar     using  ...

  9. URLRewriter.dll的使用

    http://www.cnblogs.com/Jaylong/archive/2011/10/17/url.html 微软URLRewriter.dll的url重写的简单使用 先添加引用URLRewr ...

  10. sqlserver2008r2安装