有历史bak文件和现在ldf文件,如何恢复数据库,在线求救!!!

csnet992 广西城市建设学校 开发工程师  2019-01-14 05:53:29
事情是这样,前天sql server数据库的mdf文件损坏了,但是完整的ldf日志文件还在,此外还有一个一月前的完整备份的BAK备份文件,请问有没有办法恢复到现在的数据?
求大神,新人没多少分,全给大神了。
...全文
154 点赞 收藏 11
写回复
11 条回复
sumn1985 2019年08月06日
楼主,我也遇到了跟你一模一样的问题,请教一下,我的QQ:165487460.请教你一下方法。谢谢!
回复 点赞
唐诗三百首 2019年01月15日
应该无法恢复到最新的数据版本, 只可恢复到一个月前全备的状态, 数据损失是难免的,
建议以后需加强备份管理, 不应一个月备一次.
回复 点赞
heyong3 2019年01月15日
刚测了下,日志是可以备份的。但是同样要求他这个库是完整恢复模式而且要保证中间日志没有被备份截断过,以上方法才可以
回复 点赞
Dear SQL(燊) 2019年01月15日
引用 6 楼 heyong3 的回复:
现在一定要备份好mdf和ldf文件,不要删掉了!楼上的方法不可行,因为重建的库,用ldf文件覆盖后根本打不开数据库。根本备份不了日志。 还是要从mdf入手看看能否导出数据,还有一种方式是从日志文件上做文章,看能否用工具例如apexsql Log读取ldf文件里的日志,生成重做sql,然后在以前的备份库上前滚到现在状态,当然要求你这个库是完整恢复模式而且要保证中间日志没有被备份截断过,不然日志链就断了,数据会丢失。
打不开数据库,是可以用NO_TRUNCATE备份日志的,我以前测试过!
回复 点赞
heyong3 2019年01月15日
现在一定要备份好mdf和ldf文件,不要删掉了!楼上的方法不可行,因为重建的库,用ldf文件覆盖后根本打不开数据库。根本备份不了日志。 还是要从mdf入手看看能否导出数据,还有一种方式是从日志文件上做文章,看能否用工具例如apexsql Log读取ldf文件里的日志,生成重做sql,然后在以前的备份库上前滚到现在状态,当然要求你这个库是完整恢复模式而且要保证中间日志没有被备份截断过,不然日志链就断了,数据会丢失。
回复 点赞
Dear SQL(燊) 2019年01月15日
如果日志在完整备份之前截断的可以如下复恢: 1。在相同版下的SQL SERVER上创建相同的数据库名,停止sql server 服务,将日志文件替换启动SQL SERVER,备份日志(NO_TRUNCATE)
BACKUP DATABASE 数据库名  TO DISK = '备份路径\备份文件名.bak' with NO_TRUNCATE 
2。还原完整备份 (NORECOVERY)
RESTORE DATABASE 数据库名 FROM DISK = '备份路径\备份文件名.bak' NORECOVERY;
3。还原日志
restore log 数据库名 from disk='日志备份文件'
回复 点赞
csnet992 2019年01月15日
引用 3 楼 heyong3 的回复:
mdf怎么个损坏法? 数据库恢复模式是什么样的。
被病毒加密。。。
回复 点赞
heyong3 2019年01月15日
mdf怎么个损坏法? 数据库恢复模式是什么样的。
回复 点赞
csnet992 2019年01月15日
恢复了,方法跟5楼有点类似,万幸的是日志文件是从建库开始就存在的。谢谢各位,后面有空再把方法贴出来,好几天没睡觉了。一定要及时做好离线备份啊。
回复 点赞
csnet992 2019年01月14日
引用 1 楼 吉普赛的歌 的回复:
发到云盘共享, 帮你看看
发布了云盘,bak文件10个G,ldf日志文件70个G
回复 点赞
吉普赛的歌 2019年01月14日
发到云盘共享, 帮你看看
回复 点赞
发动态
发帖子
疑难问题
创建于2007-09-28

9304

社区成员

12.1w+

社区内容

MS-SQL Server 疑难问题
社区公告
暂无公告