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

 

posted @ 2015-07-10 16:50  Neil Chen  阅读(364)  评论(0编辑  收藏  举报