SQL 错误 823 I/O error (bad page ID) detected during read【修复方法】
今天一个数据库损坏了,不管对 该表 查询、修改、添加 都会出错, 错误信息如下:
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
第二个问题:
- sp_dboption '数据库名','single user','true'
- Go
- DBCC CHECKDB('数据库名', REPAIR_ALLOW_DATA_LOSS)
- Go
- sp_dboption '数据库名', 'single user','false'
- Go
我比较庆幸,通过以上语句就可以修复了。
以下是网上的一段摘要,我没有测试,先记录下来,以后或许有用。
- 方案1:调用DBCC CHECKDB(‘db_name’,repair_rebuild)修复
- 方案2:若方案1失败,采用下面的方法试一试:
- 首先,在企业管理器中新建一数据库(如数据库名为test),建好数据库后,停止SQL Server Service Manager,
- 并将客户数据库的MDF文件更名为test_data.mdf(即新建数据库的主文件名),
- 然后用更名后的文件覆盖新建数据库同名文件,
- 接着,启动企业管理器。对Master数据库将系统表设置为可更改状态
- Use Master
- Go
- sp_configure 'allow updates ', 1
- reconfigure with override
- Go
- 将数据库设为紧急状态:
- update sysdatabases set status = 32768 where name = 'database'
- 停止并重新启动SQL Server Service Manager,并重建Log文件:
- DBCC TRACEON (3604)
- DBCC REBUILD_LOG( 'test', 'test_log_ldf ')
- 将数据库设置为单用户模式,然后进行检测:
- sp_dboption 'test', 'single user ', 'true'
- DBCC CHECKDB( 'test')
- Go
- 此数据库执行CHECKDB的过程中发现一些表的索引被破坏,于是针对具体的表进行重建索引的操作:
- DBCC DBREINDEX(表名)
- 方案3:若无法修复,则只能重备份中进行恢复.
SQL 错误 823 I/O error (bad page ID) detected during read【修复方法】的更多相关文章
- SQL Server 823,824 错误
第一: 823错误只代表.SQL server 要向操作系统申请一个页面读写的时候遇到Windos读取或写入失败.823错误是读写请求时发生的 和读写的内容没有关系.823与SQL server 本身 ...
- Chrome A标签的迁移错误:【Error loading page】
在IE中经常使用A标签用来迁移,正确的写法是 <a href="001.html"></a>即可,不过在chrome上面可能会引发错误无法迁移. 比如用下面 ...
- Dedecms自定义sql 出现错误Safe Alert: Request Error step 2!
Dedecms自定义执行sql: SELECT body FROM dede_addonarticle WHERE aid = (select max(aid) fromdede_addonartic ...
- 使用 JQueryMobile 点击超链接提示“error loading page” 错误
使用jquery mobile创建dialog时出现加载错误,“Error Loading Page”. 原因是:jquery mobile页面默认采用ajax方式进行交互,而ajax方式下是不支持f ...
- RESTORE detected an error on page (0:0) in database
在测试服务器还原生产服务器的一个数据库时遇到了下面错误: System.Data.SqlClient.SqlError: RESTORE detected an error on page (0:0) ...
- MSSQL 2000 错误823恢复
一.故障描述 MSSQL Server 2000 附加数据库错误823,附加数据库失败.数据库没有备份,不能通过备份恢复数据库,急需恢复数据库中的数据. 二.故障分析SQL Server数据库 823 ...
- MSSQL 2000 错误823恢复案例
一.故障描述 MSSQL Server 2000 附加数据库错误823,附加数据库失败.数据库没有备份,不能通过备份恢复数据库,急需恢复数据库中的数据. 二.故障分析SQL Server数据库 823 ...
- 数据恢复案例分享:MSSQL 2000 错误823
一.故障描述 MSSQL Server 2000 附加数据库错误823,附加数据库失败.数据库没有备份,不能通过备份恢复数据库,急需恢复数据库中的数据. 二.故障分析SQL Server数据库 823 ...
- 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 ...
随机推荐
- 第十二章 ThreadPoolExecutor使用 + 工作机理 + 生命周期
1.最基础的线程池ThreadPoolExecutor 使用方式: /** * ThreadPoolExecutor测试类 * 注意: * 1.ThreadPoolExecutor是一个线程池 * 2 ...
- go语言基础之数组指针做函数参数
1.数组指针做函数参数 示例: package main //必须有个main包 import "fmt" //p指向实现数组a,它是指向数组,它是数组指针 //*p代表指针所指向 ...
- [leetcode]Convert Sorted List to Binary Search Tree @ Python
原题地址:http://oj.leetcode.com/problems/convert-sorted-list-to-binary-search-tree/ 题意:将一条排序好的链表转换为二叉查找树 ...
- 超全Linux备份工具集合,满足你的所有需要!
经常备份计算机上的数据是个好的做法,它可以手动完成,也可以设置成自动执行.许多备份工具拥有不同的功能特性,让用户可以配置备份类型.备份时间.备份对象.将备份活动记入日志及执行更多操作. 1.Rsync ...
- Cognos 报表在列表上面显示汇总
一直以来,Cognos Report Studio设计报表的时候,汇总默认显示在列表下方: 1如图,拖一个列表 2运行如下,数据显示正常按日期排序 3选中订单笔数.订单金额,添加自动汇总 4:运行,可 ...
- 如何利用Framework模型生成IQD文件
很多Cognos的新手在接触Transform建模的时候对于iqd文件都有一种朦胧的感觉,当然也不必去死记硬别它的格式,下面我们就来说一下如何用Framework工具来生成iqd文件. 1:打开fra ...
- 如何在程序中使用CString
在新建项目的时候,如果选择了MFC并且使用ATL,那么在程序中使用CString是没有问题的. 但是如果当初没有选,后面再改,虽然选上了,但是CString在编译的时候还是不被编译器识别.怎么办那? ...
- OpenFace库(Tadas Baltrusaitis)中基于Haar Cascade Classifiers进行人脸检測的測试代码
Tadas Baltrusaitis的OpenFace是一个开源的面部行为分析工具.它的源代码能够从 https://github.com/TadasBaltrusaitis/OpenFace 下载. ...
- 如何解决Win7将任务栏程序自动分组的困扰
Win7默认把任务栏程序自动分组,比如多个资源管理器窗口被分到一起,其实这挺让人恼火的,关键弊病是多出一个人工检查的步骤,这在操作繁忙时容易增加人的负担,不能按预定记忆处理. 还好微软也没把蠢事做绝, ...
- Java 基本概念
1.JVM -- java virtual machine JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类 ...