恢复SQL Server被误删除的数据he备份尾部日志及还原
http://www.cnblogs.com/lyhabc/p/4620764.html
备份尾部日志及还原
https://www.cnblogs.com/mc67/p/4860338.html
在DB_1处做了完整备份,并且接下来两次分别做了两次日志备份(Log_1和Log_2),在Log_2备份完不久服务器由于数据所在磁盘损坏。这时如果日志文件完 好,则可以通过备份尾部日志(Tail of log)后,从DB_1开始恢复,依次恢复Log_1,Log_2,尾部日志来将数据库恢复到灾难发生时的时间点。理论上可以使数据的损失为0。
--备份尾部日志。
USE master GO BACKUP LOG MC67 TO DISK='F:\TEST\MC67_TAIL.TRN' WITH INIT, NO_TRUNCATE --必须指定NO_TRUNCATE,没有这个option,你备份不了 GO --然后依次恢复 RESTORE DATABASE MC67_NEW FROM DISK='F:\MC67_FULL.BAK' WITH NORECOVERY, MOVE 'MC67' TO 'F:\TEST\MC67.MDF', MOVE 'MC67_LOG' TO 'F:\TEST\MC67_LOG.LDF' GO RESTORE LOG MC67_NEW FROM DISK='F:\MC67_LOG.TRN' WITH NORECOVERY GO RESTORE LOG MC67_NEW FROM DISK='F:\TEST\MC67_TAIL.TRN' WITH RECOVERY --测试 USE MC67_NEW GO SELECT * FROM INFO
方法二
更糟糕的事情发生了:
此时由于各种原因,所处的SQL Server实例也崩溃,无法通过T-SQL来备份结尾日志。此时数据库文件损坏,而事务日志文件保持正确
假设情况和上面例子一样,此时我手里有一个完整备份(MC67_FULL.BAK)和一个日志备份(MC67_log1.TRN),还有一个日志文件(ldf)。
解决步骤:
1. 这时我将这几个文件拷贝到其他拥有SQL Server实例的机器上。
2.新建一个和原数据库名一样的数据库。设置为脱机状态。
3. 删除新建数据库的MDF文件。
4.将需要备份的数据库的日志文件替换掉原有的LDF文件。
5.此时直接备份结尾日志
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)