没有所谓的捷径
一切都是时间最平凡的累积

sqlserver数据库,修复质疑数据库

本文最后更新于2019年4月11日,已超过186天没有更新,如果文章内容失效,请反馈给本站,谢谢!

执行Transact-SQL语句或批处理是发生了异常。(micorsoft.Sqlserver.Smo)
无法在数据库'xxx'(数据库ID为161)的页(1:1277)上重做事务ID(0:442789)的日志记录(1541:517:2)。页:LSN=(1541:479:2),类型=1.日志:opcode=4,上下文2,prevpageLSN:(1541:506:2)。请从数据库备份还原该数据库,或者修复它。


今天遇到了一个sqlserver数据库质疑的问题,先尝试了分离重新附加,发现无法附加,出现了错误,看提醒可能跟日志有关系,尝试附加时去除日志文件,也仍然不能附加。于是又新建同名数据库,只替换数据库文件,仍然无法正常使用,于是只有尝试修复了。

总结操作步骤。
1、分离数据库。将数据库文件和日志都单独拷贝一份,然后删除。如果无法分离就只能停止数据库服务。
2、创建同名数据库,数据库和日志的逻辑文件名与原有一致。
3、脱机数据库,用之前的数据库文件和日志替换掉。
4、联机,然后打开查询分析器进行修复。

alter database 数据库名 set emergency
go
alter database 数据库名 set single_user
go

--修复
dbcc checkdb(数据库名,REPAIR_ALLOW_DATA_LOSS)
go
dbcc checkdb(数据库,REPAIR_REBUILD)
go

这期间可能会报一些错误,执行完以后再将数据库恢复正常模式,并做一次完整备份。

alter database 数据库名 set multi_user

后话:如果数据非常重要,要经常备份数据库,包括:完整备份、差异备份、日志备份,只要有了这些备份,就算是这种问题,也能完全修复的,不会出现数据丢失的情况。

» 本文链接地址:https://blog.mydns.vip/1619.html
» 如果喜欢可以: 点此订阅本站
赞(0) 打赏
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@mydns.vip。文章观点不代表本站立场。本站原创内容未经允许不得转载,或转载时需注明出处:豫章小站 » sqlserver数据库,修复质疑数据库
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

智慧源于勤奋,伟大出自平凡

没有所谓的捷径,一切都是时间最平凡的累积,今天所做的努力都是在为明天积蓄力量

联系我们赞助我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏