SQL数据库置疑 823 824 错误修复 无法附加处理
作者:互联网
SQL数据库为什么会置疑?
这个原因有很多,例如阵列崩溃导致数据库文件页面损坏,病毒破坏,分区损坏。断电 非法关机等因素
怎样防止数据库置疑?
远程备份或者备份到本机另一块硬盘是最佳方式,平时要多注意预防病毒 文件系统检查(chkdsk检测分区看看有无坏道或者文件系统问题) UPS电源检测 没事的时候就行 DBCC CHECKDB检测 再小的故障都要立即解决,数据库不可以带故障运行。
出现故障恢复方案?
数据库立即改成完整模式,MDF放在A磁盘分区,LDF放在B磁盘分区,勤做备份和事务日志备份,如果数据库置疑你自己无法解决 完全可以通过老备份跟事务日志自己恢复数据。,
假设 你没有老的备份,那么怎么样恢复数据?首先新建同名数据库然后停止SQL服务,删除新建的MDF LDF文件 然后将损坏MDF文件放到新建位置,启动SQL 执行以下命令。
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
update sysdatabases set status =28 where name='数据库名字'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption '数据库名字', 'single user', 'false'
Go
dbcc rebuild_log('数据库名字','D:\dataJIJIA\数据库名字.ldf')
这样就数据库就OK了,下面在检测数据库有没有损坏 执行DBCC CHECKDB ('数据库名字')如果出现红色的故障 立即修复之,修复不了 就找专业人士了。
关于823 824 页撕裂错误
这个823 就是数据库物理页面损坏,有时可能是页面有但是校验值损坏 导致无法识别该页面,有时呢 因为断电 或者文件系统问题 出现页面丢失了也会报这个823错误。
824和页撕裂错误 这两个都是SQL页面校验机制搞的鬼,824这个错误SQL2005及以上版本的 checksum 校验会报告,只要他报告了就表示页面损坏了,或者页面被垃圾数据填充了,或者有页面上下指针指向了垃圾页面。
页撕裂这个错误就是 当页面正在写入数据时由于断电等原因造成页面只写了一半,或者页面一半数据成了垃圾数据 就好比一张纸撕了一样 裂开了,你明白了吧。
这些错误可以通过老备份的页面还原,也可以重新生成校验值,或者直接去除掉页面指针 再次修复即可。
posted on 2013-09-30 12:45 极佳数据库 阅读(1469) 评论(0) 编辑 收藏标签:数据库,SQL,824,备份,823,页面 来源: https://blog.51cto.com/u_15176387/2833178