恢复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.此时直接备份结尾日志