sqlserver 附加数据库 错误823 如何解决?
答案:2 悬赏:40 手机版
解决时间 2021-02-28 07:16
- 提问者网友:听门外雪花风
- 2021-02-28 00:02
数据库置疑,分离后不能附加,提示错误823,请问有什么办法解决这个问题?
最佳答案
- 五星知识达人网友:过活
- 2021-02-28 00:17
删掉日志文件试试!
全部回答
- 1楼网友:梦中风几里
- 2021-02-28 00:38
sqlserver附加数据库错误823的解决方案
一、sql-server附加数据库时失败。
1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。
2、异常分析:关于823错误的 sql-server 中的帮助:
================================
错误 823
严重级别 24
消息正文
在文件 "%4!" 的偏移量 %3! 处的 %2! 过程中,检测到 i/o 错误 %1!。
解释
microsoft sql server 在对某设备进行读或写请求时遇到 i/o 错误。该错误通常表明磁盘问题。但是,错误日志中在错误 823 之前记录的其它核心消息应指出涉及了哪个设备。
3、解决办法:
在sql-server企业管理器中,新建同名数据库(这里假设为test)后,停止数据库,把损坏的数据库文件data.mdf和test_log.ldf覆盖刚才新建数据库目录下的data.mdf和test_log.ldf,同时删除test_log.ldf文件;启动数据库服务,发现数据库名test后面有“置疑”字样。不要紧,打开sql自带查询分析器,分别执行如下sql语句:
第一、
exec sp_configure 'allow updates',1 reconfigure with override
第二、
update sysdatabases set status=32768 where name='数据库名'
第三、
dbcc rebuild_log ('数据库名','d:\database\test_log.ldf')
第四、
update sysdatabases set status=0 where name='数据库名'
第五、
restore database 数据库名 with recovery
第六、
exec sp_configure 'allow updates',0 reconfigure with override
按照此方法操作,应该能修复数据库正常访问了。如果问题依然存在,最笨的一个方法就是新建另一个数据库,把原数据库(test)各个表的数据导出到新建数据库表中。
============================================================
补充说明:用上面的六步把数据库置疑的问题解决了,但是数据库表里还有损坏的表(inf_gdscode),把坏表导出的时候也不成功。最后在查询分析器里运行:
use nmgbt_hcxuexipos (数据库名)
go
dbcc checktable ('inf_gdscode',repair_allow_data_loss)
go
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯