数据库置疑_及修复
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Sqlserver 数据库823错误(置疑)的解决方案
一、SQL-Server数据库置疑:
1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。
2、异常分析:关于823错误的SQL-SERVER 中的帮助:
================================
错误823
严重级别24
消息正文
在文件%4的偏移量,%3的索引,%2过程中,检测到I/O 错误%1。
解决办法:
准备工作:
①停止sql server服务,找到置疑库的mdf,ldf文件复制出来,这里假设叫kmcyV51_data.mdf(ldf),并与企业管理器中删除该数据库;
②用KM安装包下db_setup.exe建立一个空库(名称和质疑数据库名一致kmcyv51),选择服务器节点,右键停止数据库服务,把损坏的数据库文件kmcyv51_Data.mdf覆盖刚才新建数据库目录下,同时删除kmcy_v51_log.LDF文件;右键节点启动数据库服务,发现数据库名kmcyv51后面有“置疑”字样。
打开SQL自带查询分析器,在master数据库分别执行如下SQL语句:
(注意更改数据库名)
use master
exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打开修改系统表开关*/
update sysdatabases set status=32768 where name = 'kmcyv51' /* 设置紧急状态*/
sp_dboption 'kmcyv51', 'single user', 'true' /*启用单用户*/
DBCC REBUILD_LOG ('kmcyv51','E:\km软件_data\KmcyV51_Log.LDF') /* 重建LDF文件*/
update sysdatabases set status=28 where name= 'kmcyv51' /* 设置正常状态*/
--或者
update sysdatabases set status = 16 where name = 'kmcyv51'
RESTORE DATABASE kmcyv51 WITH RECOVERY /* 恢复数据库*/
exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 关闭修改系统表开关*/
sp_dboption 'kmcyv51', 'single user', 'false' /* 关闭单用户模式*/
如果问题依然存在,最笨的一个方法就是新建另一个数据库,把
原数据库各个表的数据导出到新建数据库表中。
下面是修复语句:
补充说明:用上面的六步把数据库置疑的问题解决了,但是数据库表里还有损坏的表,下面是简单修复语句
修复数据库:
在查询分析器里运行:
---检查数据库,dbname 数据库名,注意更换
use kmcyv51
dbcc checkdb --检查表:checktable(’表名’)
如果在最后结果有这样的提示:
CHECKDB 发现了x个分配错误和x 个一致性错误(在数据库'dbname' 中)
使用下面语句简单修复:
sp_dboption 'kmcyv51', 'single user', 'true'
--修复库:下面三句可以反复执行
DBCC CHECKDB ('kmcyv51',repair_fast) --快速修复
dbcc checkdb ('kmcyv51',repair_rebuild) --重建修复
dbcc checkdb ('kmcyv51',repair_allow_data_loss) --有损坏修复命令
use kmcyv51
--修复表
DBCC checktable ('tab_name',repair_fast)
DBCC CHECKTable ('tab_name',repair_rebuild)
DBCC CHECKTable ('tab_name',repair_allow_data_loss)
sp_dboption 'kmcyv51', 'single user', 'false'
再次检查数据库
Use kmcyv51
Dbcc checkdb
如果修复后还存在x个分配错误和x 个一致性错误无法修复,只能找专业的机构修复!
建议将其中档案数据导出,新建一个数据库,将资料导入!